时序差分方法求解强化学习任务——基于同轨策略的时序差分控制
目录
上一节介绍了时序差分方法的策略评估过程以及相比于蒙特卡洛方法,时序差分方法的优势。本节将介绍时序差分方法中具有代表性的方法:基于同轨策略的时序差分控制——SARSA算法。
回顾:时序差分方法的策略评估过程
时序差分方法的最大特点就是更新的实时性,不同于蒙特卡洛方法在策略评估过程中 至少完整执行一次情节 后才能执行动量更新计算 → \to → 而是仅需要一个步骤(一次状态转移过程),就可以根据状态转移的变化信息( V ( S t + 1 ) , R t + 1 V(S_{t+1}),R_{t+1} V(St+1),Rt+1)对当前时刻 t t t的价值函数 V ( S t ) V(S_t) V(St)进行动量更新计算:
V ( S t ) ← V ( S t ) + α [ R t + 1 + γ V ( S t + 1 ) − V ( S t ) ] V(S_t) \gets V(S_t) + \alpha [R_{t+1} + \gamma V(S_{t+1}) - V(S_t)] V(St)←V(St)+α[Rt+1+γV(St+1)−V(St)]
这种方法不仅缩短了价值函数 V ( S t ) V(S_t) V(St)在迭代过程中的更新周期;并且减小了内存空间的消耗。
但同为通过采样近似求解价值函数的方法,时序差分方法同样面临和蒙特卡洛方法类似的问题:
在某确定状态下,某动作 a a a发生的概率极低——导致状态/状态-动作二元组很难被访问完整 的问题。
该问题在‘蒙特卡洛方法求解强化学习任务——蒙特卡洛评估基本介绍’中提到
传送门
因此,基于迭代方式中的策略变化,时序差分方法同样可以分为两种方式——同轨策略与离轨策略。
SARSA:基于同轨策略的时序差分控制
在蒙特卡洛方法求解强化学习任务——基于非试探性出发假设的蒙特卡洛控制中介绍过,为了能够生成更多可能性的状态\状态-动作二元组(以便 存在概率被访问到),将控制过程中的策略分为两部分:
- 行为策略(behaviour policy):用于生成样本的策略;
- 目标策略(target policy):用于策略改进的策略;
在SARSA算法中使用的是同轨策略——行为策略和目标策略共用同一个策略,在SARSA算法视角中是如何实现这一过程的?
构建场景如下:
- 设定某一时刻 t t t的状态与状态转移后的下一时刻状态分别为 S t , S t + 1 S_t,S_{t+1} St,St+1;
- 在 S t , S t + 1 S_t,S_{t+1} St,St+1状态下分别对应一个在该状态下有意义的动作组成的动作集合,记为 A ( S t ) , A ( S t + 1 ) \mathcal A(S_t),\mathcal A(S_{t+1}) A(St),A(St+1);
- 由于是同轨策略——因此保证在 S t , S t + 1 S_t,S_{t+1} St,St+1状态下选择动作的策略 π ( a ∣ s ) \pi(a \mid s) π(a∣s)满足 软性策略 的要求:
a ∈ A ( s ) → π ( a ∣ s ) > 0 \begin{aligned} a \in \mathcal A(s) \to \pi(a \mid s) > 0 \end{aligned} a∈A(s)→π(a∣s)>0
多说一句
,这里的 π ( a ∣ s ) \pi(a \mid s) π(a∣s)是一个2维矩阵,它存储了所有的状态-动作二元组的条件概率分布信息。
其中 m m m表示动作集合 A \mathcal A A<