Skip to content

Commit

Permalink
第1、2章勘误
Browse files Browse the repository at this point in the history
  • Loading branch information
johnjim0816 committed Nov 15, 2023
1 parent f07345a commit fdcc9ba
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 17 deletions.
17 changes: 11 additions & 6 deletions docs/ch1/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,16 +77,21 @@ $\qquad$ 其次存在信号问题,即智能体之间可能需要进行通信

$\qquad$ 从数据中学习,或者从演示中学习($\text{learn from demostration}$)包含丰富的门类,例如以模仿学习为代表的从专家数据中学习策略、以逆强化学习( $\text{inverse reinforcement learning,IRL}$ 为代表的从人类数据中学习奖励函数和以及从人类反馈中学习($\text{reinforcement learning from huamn feedback,RLHF}$)为代表的从人类标注的数据中学习奖励模型来进行微调($\text{fine-tune}$)。此外,还包括离线强化学习($\text{offline reinforce learning}$)、世界模型($\text{world model}$)等等,这些方法都利用了数据来辅助强化学习,因此本书将它们同归为一类从数据中学习的方法。注意,这些方法的思路实际上是大相径庭的,完全可以作为一个单独的子方向来研究。

模仿学习是指在奖励函数难以明确定义或者策略本身就很难学出来的情况下,我们可以通过模仿人类的行为来学习到一个较好的策略。最典型的模仿策略之一就是行为克隆($\text{behavioral cloning,BC}$ ),即将每一个状态-动作对视为一个训练样本,并使用监督学习的方法(如神经网络)来学习一个策略。但这种方法容易受到分布漂移( $\text{distribution shift}$ )的影响。智能体可能会遇到从未见过的状态,导致策略出错。
$\qquad$ 模仿学习是指在奖励函数难以明确定义或者策略本身就很难学出来的情况下,我们可以通过模仿人类的行为来学习到一个较好的策略。最典型的模仿策略之一就是行为克隆($\text{behavioral cloning,BC}$ ),即将每一个状态-动作对视为一个训练样本,并使用监督学习的方法(如神经网络)来学习一个策略。但这种方法容易受到分布漂移( $\text{distribution shift}$ )的影响。智能体可能会遇到从未见过的状态,导致策略出错。

逆强化学习是指通过观察人类的行为来学习到一个奖励函数,然后通过强化学习来学习一个策略。由于需要专家数据,逆强化学习会受到噪声的影响,因此如何从噪声数据中学习到一个较好的奖励函数也是一个难题。
$\qquad$ 逆强化学习是指通过观察人类的行为来学习到一个奖励函数,然后通过强化学习来学习一个策略。由于需要专家数据,逆强化学习会受到噪声的影响,因此如何从噪声数据中学习到一个较好的奖励函数也是一个难题。

模仿学习($\text{imitation learning,IL}$)和逆强化学习( $\text{inverse reinforcement learning,IL}$ )。在奖励函数难以明确定义或者策略本身就很难学出来的情况下,我们可以通过模仿人类的行为来学习到一个较好的策略。最典型的模仿策略就是行为克隆($\text{behavioral cloning,BC}$ ),即将每一个状态-动作对视为一个训练样本,并使用监督学习的方法(如神经网络)来学习一个策略。但这种方法容易受到分布漂移( $\text{distribution shift}$ )的影响。智能体可能会遇到从未见过的状态,导致策略出错。另一种思路是逆强化学习,即通过观察人类的行为来学习到一个奖励函数,然后再通过强化学习来学习一个策略。由于同样需要专家数据,因此也存在着噪声的影响,因此如何从噪声数据中学习到一个较好的奖励函数也是一个难题。
* 探索策略( $\text{exploration strategy}$ )。在强化学习中,探索策略是一个非常重要的问题,即如何在探索和利用之间做出权衡。在探索的过程中,智能体会尝试一些未知的动作,从而可能会获得更多的奖励,但同时也可能会遭受到惩罚。而在利用的过程中,智能体会选择已知的动作,从而可能会获得较少的奖励,但同时也可能会遭受较少的惩罚。因此,如何在探索和利用之间做出权衡是一个非常重要的问题。目前比较常用的方法有 $\epsilon-\text{greedy}$和置信上界( $\text{upper confidence bound,UCB}$ )等等。此外,提高探索的本质也是为了避免局部最优问题,从而提高智能体的鲁棒性,近年来也有研究结合进化算法来提高探索的效率,例如 $\text{NEAT}$($\text{neuro evolution of augmenting topologies}$)和 $\text{PBT}$($\text{population based training}$)等算法,当然这些算法在提高探索的同时也会带来一定的计算成本。
### 1.3.3 探索策略

* 实时环境( $\text{real-time environment}$ )。在实际应用中,智能体往往需要在实时或者在线环境中进行决策,例如自动驾驶、机器人等等。在这种情况下训练不仅会降低效率(实时环境响应动作更慢),而且还会带来安全隐患(训练过程中可能会出现意外)。解决这一问题的思路之一就是离线强化学习( $\text{offline reinforcement learning}$ ),即在离线环境中进行训练,然后将训练好的模型部署到在线环境中进行决策。但这种方法也存在着一定的问题,例如离线环境和在线环境之间可能存在着分布漂移,即两个环境的状态分布不同,这就导致了训练好的模型在在线环境中可能会出现意外。另外有一种是近两年比较流行的思路,即世界模型( $\text{world model}$ ),即在离线环境中训练一个世界模型,然后将世界模型部署到在线环境中进行决策。世界模型的思路是将环境分为两个部分,一个是世界模型,另一个是控制器。世界模型的作用是预测下一个状态,而控制器的作用是根据当前的状态来决策动作。这样就可以在离线环境中训练世界模型,然后将世界模型部署到在线环境中进行决策,从而避免了在线环境中的训练过程,提高了效率,同时也避免了在线环境中的安全隐患。但世界模型也存在着一定的问题,例如世界模型的预测误差会导致控制器的决策出错,因此如何提高世界模型的预测精度也是一个难题
$\qquad$ 探索策略( $\text{exploration strategy}$ )。在强化学习中,探索策略是一个非常重要的问题,即如何在探索和利用之间做出权衡。在探索的过程中,智能体会尝试一些未知的动作,从而可能会获得更多的奖励,但同时也可能会遭受到惩罚。而在利用的过程中,智能体会选择已知的动作,从而可能会获得较少的奖励,但同时也可能会遭受较少的惩罚。因此,如何在探索和利用之间做出权衡是一个非常重要的问题。目前比较常用的方法有 $\epsilon-\text{greedy}$和置信上界( $\text{upper confidence bound,UCB}$ )等等。此外,提高探索的本质也是为了避免局部最优问题,从而提高智能体的鲁棒性,近年来也有研究结合进化算法来提高探索的效率,例如 $\text{NEAT}$($\text{neuro evolution of augmenting topologies}$)和 $\text{PBT}$($\text{population based training}$)等算法,当然这些算法在提高探索的同时也会带来一定的计算成本

* 多任务强化学习( $\text{multi-task reinforcement learning}$ )。这个问题在深度学习中也较为常见,在实际应用中,智能体往往需要同时解决多个任务,例如机器人需要同时完成抓取、搬运、放置等任务,而不是单一的抓取任务。在这种情况下,如何在多个任务之间做出权衡是一个难题。目前比较常用的方法有联合训练( $\text{joint training}$ )和分层强化学习( $\text{hierarchical reinforcement learning}$ )等等。联合训练的思路是将多个任务的奖励进行加权求和,然后通过强化学习来学习一个策略。分层强化学习的思路是将多个任务分为两个层次,一个是高层策略,另一个是低层策略。高层策略的作用是决策当前的任务,而低层策略的作用是决策当前任务的动作。这样就可以通过强化学习来学习高层策略和低层策略,从而解决多任务强化学习的问题。但分层强化学习也存在着一定的问题,例如高层策略的决策可能会导致低层策略的决策出错,因此如何提高高层策略的决策精度也是一个难题。
### 1.3.4 实时环境

$\qquad$ 实时环境( $\text{real-time environment}$ )。在实际应用中,智能体往往需要在实时或者在线环境中进行决策,例如自动驾驶、机器人等等。在这种情况下训练不仅会降低效率(实时环境响应动作更慢),而且还会带来安全隐患(训练过程中可能会出现意外)。解决这一问题的思路之一就是离线强化学习( $\text{offline reinforcement learning}$ ),即在离线环境中进行训练,然后将训练好的模型部署到在线环境中进行决策。但这种方法也存在着一定的问题,例如离线环境和在线环境之间可能存在着分布漂移,即两个环境的状态分布不同,这就导致了训练好的模型在在线环境中可能会出现意外。另外有一种是近两年比较流行的思路,即世界模型( $\text{world model}$ ),即在离线环境中训练一个世界模型,然后将世界模型部署到在线环境中进行决策。世界模型的思路是将环境分为两个部分,一个是世界模型,另一个是控制器。世界模型的作用是预测下一个状态,而控制器的作用是根据当前的状态来决策动作。这样就可以在离线环境中训练世界模型,然后将世界模型部署到在线环境中进行决策,从而避免了在线环境中的训练过程,提高了效率,同时也避免了在线环境中的安全隐患。但世界模型也存在着一定的问题,例如世界模型的预测误差会导致控制器的决策出错,因此如何提高世界模型的预测精度也是一个难题。

### 1.3.5 多任务强化学习

$\qquad$ 多任务强化学习( $\text{multi-task reinforcement learning}$ )。这个问题在深度学习中也较为常见,在实际应用中,智能体往往需要同时解决多个任务,例如机器人需要同时完成抓取、搬运、放置等任务,而不是单一的抓取任务。在这种情况下,如何在多个任务之间做出权衡是一个难题。目前比较常用的方法有联合训练( $\text{joint training}$ )和分层强化学习( $\text{hierarchical reinforcement learning}$ )等等。联合训练的思路是将多个任务的奖励进行加权求和,然后通过强化学习来学习一个策略。分层强化学习的思路是将多个任务分为两个层次,一个是高层策略,另一个是低层策略。高层策略的作用是决策当前的任务,而低层策略的作用是决策当前任务的动作。这样就可以通过强化学习来学习高层策略和低层策略,从而解决多任务强化学习的问题。但分层强化学习也存在着一定的问题,例如高层策略的决策可能会导致低层策略的决策出错,因此如何提高高层策略的决策精度也是一个难题。


## 1.4 学习本书之前的一些准备
Expand Down
27 changes: 16 additions & 11 deletions docs/ch2/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ $\qquad$ 如图 $\text{2-1}$ 所示,它描述了马尔可夫决策过程中智
</div>
<div align=center>图 $\text{2-1}$ 马尔可夫决策过程中智能体与环境的交互过程</div>

$\qquad$ 确切地说,智能体与环境之间是在一系列**离散的时步** <sup>①</sup>( $\text{time step}$ )交互的,一般用 $t$ 来表示,$t=0,1,2,\cdots$<sup>②</sup>。在每个时步 $t$, 智能体会观测或者接收到当前环境的状态 $s_t$,根据这个状态 $s_t$ 执行动作 $a_t$。执行完动作之后会收到一个奖励 $r_{t+1}$ <sup>③</sup>,同时环境也会收到动作 $a_t$ 的影响会变成新的状态 $s_{t+1}$,并且在 $t+1$ 时步被智能体观测到。如此循环下去,我们就可以在这个交互过程中得到一串轨迹,可表示为:
$\qquad$ 确切地说,智能体与环境之间是在一系列**离散的时步** <sup>①</sup>( $\text{time step}$ )交互的,一般用 $t$ 来表示,$t=0,1,2,\cdots$<sup>②</sup>。在每个时步 $t$, 智能体会观测或者接收到当前环境的状态 $s_t$,根据这个状态 $s_t$ 执行动作 $a_t$。执行完动作之后会收到一个奖励 $r_{t+1}$ <sup>③</sup>,同时环境也会收到动作 $a_t$ 的影响会变成新的状态 $s_{t+1}$,并且在 $t+1$ 时步被智能体观测到。如此循环下去,我们就可以在这个交互过程中得到一串轨迹,如式 $\text{(2.1)}$ 所示。

$$
\tag{2.1}
Expand All @@ -33,7 +33,7 @@ $\qquad$ 其中奖励 $r_{t+1}$就相当于我们学习弹钢琴时收到的反

## 2.2 马尔可夫性质

$\qquad$ 现在我们介绍马尔可夫决策过程的一个前提,即马尔可夫性质,如式 $\text{(2.2)}$ 所示
$\qquad$ 现在我们介绍马尔可夫决策过程的一个前提,即马尔可夫性质,如式 $\text{(2.2)}$ 所示

$$
\tag{2.2}
Expand All @@ -48,29 +48,32 @@ $\qquad$ 换句话说,它们不仅取决于当前状态,还依赖于历史
## 2.3 回报

$\qquad$ 前面讲到在马尔可夫决策过程中智能体的目标时最大化累积的奖励,通常我们把这个累积的奖励称为回报(Return),用 $G_t$ 表示,最简单的回报公式可以写成式
$\qquad$ 前面讲到在马尔可夫决策过程中智能体的目标时最大化累积的奖励,通常我们把这个累积的奖励称为回报(Return),用 $G_t$ 表示,最简单的回报公式可以写成式 $\text{(2.3)}$。

$$
\tag{2.3}
G_t = r_1 + r_2 + \cdots + r_T
$$

$\qquad$ 其中 $T$ 前面提到过了,表示最后一个时步,也就是每回合的最大步数。这个公式其实只适用于有限步数的情境,例如玩一局游戏,无论输赢每回合总是会在有限的步数内会以一个特殊的状态结束,这样的状态称之为终止状态。但也有一些情况是没有终止状态的,换句话说智能体会持续与环境交互,比如人造卫星在发射出去后会一直在外太空作业直到报废或者被回收,这样的任务称之为持续性任务。在持续性任务中上面的回报公式是有问题的,因为此时 $T=\infty$。

$\qquad$ 为了解决这个问题,我们引入一个折扣因子(discount factor)$\gamma$,并可以将回报表示为:
$\qquad$ 为了解决这个问题,我们引入一个折扣因子(discount factor)$\gamma$,并可以将回报表示为式 $\text{(2.4)}$。

$$
G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k=0}^\infty \gamma^k R_{t+k+1}
\tag{2.4}
G_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \cdots = \sum_{k=0}^\infty \gamma^k r_{t+k+1}
$$

$\qquad$ 其中$\gamma$ 取值范围在 $0$ 到 $1$ 之间,它表示了我们在考虑未来奖励时的重要程度,控制着当前奖励和未来奖励之间的权衡。换句话说,它体现了我们对长远目标的关注度。当 $\gamma=0$ 时,我们只会关心当前的奖励,而不会关心将来的任何奖励。而当 $\gamma$ 接近 $1$ 时,我们会对所有未来奖励都给予较高的关注度。

$\qquad$ 这样做的好处是会让当前时步的回报$G_t$跟下一个时步$G_{t+1}$的回报是有所关联的,即:
$\qquad$ 这样做的好处是会让当前时步的回报 $G_t$ 跟下一个时步 $G_{t+1}$ 的回报是有所关联的,如式 $\text{(2.5)}$ 所示。

$$
\tag{2.5}
\begin{aligned}
G_t & \doteq R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\gamma^3 R_{t+4}+\cdots \\
& =R_{t+1}+\gamma\left(R_{t+2}+\gamma R_{t+3}+\gamma^2 R_{t+4}+\cdots\right) \\
& =R_{t+1}+\gamma G_{t+1}
G_t & \doteq r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+3}+\gamma^3 r_{t+4}+\cdots \\
& =r_{t+1}+\gamma\left(r_{t+2}+\gamma r_{t+3}+\gamma^2 r_{t+4}+\cdots\right) \\
& =r_{t+1}+\gamma G_{t+1}
\end{aligned}
$$

Expand All @@ -89,9 +92,10 @@ $\qquad$ 既然状态数是有限的,那其实我们可以用一种状态流

$\qquad$ 如图 2.2 所示,图中每个曲线箭头表示指向自己,比如当学生在认真听讲即处于状态 $s_1$ 时,会有 $0.2$ 的概率继续认真听讲。当然也会分别有 $0.4$ 和 $0.4$ 的概率玩手机($s_2$)或者睡觉($s_3$)。此外,当学生处于状态 $s_2$ 时,也会有 $0.2$ 的概率会到认真听讲的状态($s_1$),像这种两个状态之间能互相切换的情况我们用一条没有箭头的线连接起来,参考无向图的表示。

$\qquad$ 整张图表示了马尔可夫决策过程中的状态流向,这其实跟数字电路中**有限状态机**的概念是一样的。严格意义上来讲,这张图中并没有完整地描述出马尔可夫决策过程,因为没有包涵动作、奖励等元素,所以一般我们称之为**马尔可夫链(Markov Chain)**,又叫做离散时间的马尔可夫过程(Markov Process),跟马尔可夫决策过程一样,都需要满足马尔可夫性质。因此我们可以用一个概率来表示状态之间的切换,比如 $ P_{12}=P(S_{t+1}=s_2 | S_{t+1}=s_1) = 0.4$ 表示当前时步的状态是 $s_1$ ,即认真听讲时在下一个时步切换到 $s_2$ 即玩手机的概率,我们把这个概率称为**状态转移概率(State Transition Probability)**拓展到所有状态我们可以表示为:
$\qquad$ 整张图表示了马尔可夫决策过程中的状态流向,这其实跟数字电路中**有限状态机**的概念是一样的。严格意义上来讲,这张图中并没有完整地描述出马尔可夫决策过程,因为没有包涵动作、奖励等元素,所以一般我们称之为**马尔可夫链(Markov Chain)**,又叫做离散时间的马尔可夫过程(Markov Process),跟马尔可夫决策过程一样,都需要满足马尔可夫性质。因此我们可以用一个概率来表示状态之间的切换,比如 $ P_{12}=P(S_{t+1}=s_2 | S_{t+1}=s_1) = 0.4$ 表示当前时步的状态是 $s_1$ ,即认真听讲时在下一个时步切换到 $s_2$ 即玩手机的概率,我们把这个概率称为**状态转移概率(State Transition Probability)**拓展到所有状态我们可以表示为式 $\text{(2.6)}$。

$$
tag{2.6}
P_{ss'} = P(S_{t+1}=s'|S_{t}=s)
$$

Expand Down Expand Up @@ -145,9 +149,10 @@ $$
\end{gather*}
$$

$\qquad$ 这个矩阵就叫做**状态转移矩阵(State Transition Matrix)**拓展到所有状态可表示为:
$\qquad$ 这个矩阵就叫做**状态转移矩阵(State Transition Matrix)**拓展到所有状态可表示为式 $\text{(2.7)}$。

$$
tag{2.7}
P_{ss'}=\begin{pmatrix}
p_{11} & p_{12} & \cdots & p_{1n}\\
p_{21} & p_{22} & \cdots & p_{2n}\\
Expand Down

0 comments on commit fdcc9ba

Please sign in to comment.