fix some typos
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
这节课我们通过最简单的`表格型的方法`来讲解如何使用 value-based 方法去求解强化学习。
|
||||
|
||||
## Sarsa
|
||||
## Sarsa: On-policy TD Control
|
||||
|
||||
### MDP
|
||||
|
||||
@@ -109,17 +109,21 @@ $$
|
||||
|
||||
这种强化方式其实在数学上面一行公式就表达出来了,这种更新的方式叫做`时序差分(Temporal Difference)`。这个公式就是说可以拿下一步的 Q 值 $Q(S_{t+_1},A_{t+1})$ 来更新我这一步的 Q 值 $Q(S_t,A_t)$ 。
|
||||
|
||||
为了理解这个公式,如图所示,我们先把 $R_{t+1}+\gamma Q\left(S_{t+1}, A_{t+1}\right.)$ 当作是一个目标值,就是 $Q(S_t,A_t)$ 想要去逼近的一个目标值。我们想要计算的就是 $Q(S_t,A_t)$ 。因为最开始 Q 值都是随机初始化或者是初始化为零,它需要不断地去逼近它理想中真实的 Q 值,我们就叫 target 。Target 就是未来收益的总和大概有多少,而且是带衰减的那个。
|
||||
为了理解这个公式,如上图所示,我们先把 $R_{t+1}+\gamma Q\left(S_{t+1}, A_{t+1}\right.)$ 当作是一个目标值,就是 $Q(S_t,A_t)$ 想要去逼近的一个目标值。我们想要计算的就是 $Q(S_t,A_t)$ 。**因为最开始 Q 值都是随机初始化或者是初始化为零,它需要不断地去逼近它理想中真实的 Q 值,我们就叫 target 。Target 就是带衰减的未来收益的总和。**
|
||||
|
||||
我们用 $G_t$ 来表示未来收益总和(return),我们对 return 做一下简单的数学变化,可以知道
|
||||
我们用 $G_t$ 来表示未来收益总和(return),并且对它做一下数学变化:
|
||||
$$
|
||||
G_t = R_{t+1}+ \gamma G_{t+1}
|
||||
\begin{aligned}
|
||||
G_{t} &=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}
|
||||
$$
|
||||
就可以知道 $G_t = R_{t+1}+ \gamma G_{t+1}$。
|
||||
|
||||
也就是说,我们拿 $Q(S_t,A_t)$ 来逼近 $G_t$,那 $Q(S_{t+1},A_{t+1})$ 其实就是近似 $G_{t+1}$。我就可以用 $Q(S_{t+1},A_{t+1})$ 近似 $G_{t+1}$,然后把 $R_{t+1}+Q(S_{t+1},A_{t+1})$ 当成目标值。
|
||||
|
||||
也就是说,我们拿 $Q(S_t,A_t)$ 来逼近这个 $G_t$ , 那 $Q(S_{t+1},A_{t+1})$ 其实就是近似这个 $G_{t+1}$ ,那我们可以把 $G_{t+1}$ 放到这个目标值这里。$Q(S_t,A_t)$ 就是要逼近这个目标值。我们用软更新的方式来逼近。
|
||||
|
||||
软更新的方式就是 $\alpha$ ,每次我只更新一点点,$\alpha$ 有点类似于学习率。最终的话,Q 值都是可以慢慢地逼近到真实的 target 值。这样我们的更新公式只需要用到当前时刻的 $S_{t},A_t$ ,然后还有拿到的 $R_{t+1}, S_{t+1},A_{t+1}$ 。
|
||||
$Q(S_t,A_t)$ 就是要逼近这个目标值。我们用软更新的方式来逼近。软更新的方式就是 $\alpha$ ,每次我只更新一点点,$\alpha$ 有点类似于学习率。最终的话,Q 值都是可以慢慢地逼近到真实的 target 值。这样我们的更新公式只需要用到当前时刻的 $S_{t},A_t$,还有拿到的 $R_{t+1}, S_{t+1},A_{t+1}$ 。
|
||||
|
||||
**该算法由于每次更新值函数需要知道当前的状态(state)、当前的动作(action)、奖励(reward)、下一步的状态(state)、下一步的动作(action),即 $(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1})$ 这几个值 ,由此得名 `Sarsa` 算法**。它走了一步之后,拿到了 $(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1})$ 之后,就可以做一次更新。
|
||||
|
||||
@@ -129,7 +133,7 @@ $$
|
||||
|
||||
我们直接看这个框框里面的更新公式, 和之前的公式是一模一样的。$S'$ 就是 $S_{t+1}$ 。我们就是拿下一步的 Q 值来更新这一步的 Q 值,不断地强化每一个 Q。
|
||||
|
||||
## Q-learning
|
||||
## Q-learning: Off-policy TD Control
|
||||
|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user