DP
方法解环境MDP已知(model-based)情况下的prediction和control问题:强化学习笔记(3)—— MDP中的prediction和control问题α-MC
方法和TD(0)
方法解环境MDP未知(model-free)情况下的prediction问题:强化学习笔记(4)—— 无模型(model-free)prediction问题 (α-MC方法、TD方法)无模型强化学习通过和环境进行交互来解决问题
Agent不能直接获取状态转移矩阵P和奖励函数R
Agent的每次交互过程,会采集一条轨迹(Trajectories/episodes)
,Agent要收集大量的轨迹,然后从中获取信息,改进策略,以求获得更多的奖励
一条轨迹是一个 “状态、动作、奖励” 序列,如
{ S 1 , A 1 , R 2 , S 2 , A 2 , . . . S t , A t , R t + 1 , . . . R T , S T } \{S_1,A_1,R_2,S_2,A_2,...S_t,A_t,R_{t+1},...R_T,S_T\} {S1,A1,R2,S2,A2,...St,At,Rt+1,...RT,ST}
model-free RL的两种常用方法
MC
):Monte Carlo MethodTD
) :Temporal Difference Learning我们可以将上面Model-based control中的policy iteration算法推广到一个解control问题的更一般形式
先看policy iteration,这个算法包括两个相互作用的流程
policy iteration中这两个流程交替进行,每个流程都在另一个开始前完成。但这不是必须的,可以在两次策略提升之间只进行一次策略评估而不是一直迭代到收敛;在一些异步DP方法中,评估和改进以更细的粒度交替进行(比如可能某次评估中只有一个状态的价值进行了更新)。但是不管怎么样,只要两个流程持续更新所有状态,最后的结果都是相同的
我们定义广义策略迭代 (GPI)
:指代让策略评估和策略提升交替进行相互改进的一般思路,不限制这两个流程的粒度和其他细节。
几乎所有的RL方法都可以被描述为GPI,即几乎所有方法都包含明确定义的策略和价值函数,如下所示
策略总是基于特定的价值函数进行改进,价值函数也始终会向相应的真实价值函数收敛。显然,当评估流程和改进流程都稳定下来不在变化时,价值函数和策略函数必定是最优的。当稳定到最优 V ∗ V^* V∗和 π ∗ \pi^* π∗ 时,价值函数一定和当前策略一致;策略一定对当前价值函数是贪心策略。因此,只有当一个策略发现它对自己的评估价值函数是贪心策略时,两个流程才能稳定下来,这意味着Bellman Optimal等式
成立,这个策略和价值函数一定是最优的
可以将GPI的流程看成竞争与合作。虽然两个流程朝着相反的反向前进(让策略对价值函数贪心通常会使价值函数与当前策略不不匹配;使价值函数与策略一致通常会使策略不再贪心),但从长远看,这两个流程会相互作用以找到一个联合解决方案:最优价值 V ∗ V^* V∗和最优策略 π ∗ \pi^* π∗
可以把每个流程看成二维空间中的一条线,代表对于其目标的解决方案。每个流程都把 V V V或 π \pi π推向其中一条线,由于这两条线不是正交的,所以两个目标间会产生相互作用。直接冲向某个目标会导致某种程度上偏离另一个目标,然而整体流程的结果最终会更接近最优的总目标。在GPI中,我们也可以让每次走的步子小一点,部分地实现其中一个目标。无论是哪种情况,尽管没有直接优化总目标,但策略评估和策略提升两个流程结合在一起,就可以最终达到最优的总目标
引入
在model-free方法中,为了评估(prediction)或优化(control)策略 π \pi π ,我们常常用 π \pi π 和环境交互得到episode,再用episode评估和改进 π \pi π,然后再用 π \pi π 交互得episode,再评估改进,直到收敛为止。这里用于生成episode的策略和被评估优化的策略都是 π \pi π ,这类方法被称为 “同轨策略方法”
所有 “同轨策略方法” 在解control问题时都面临一个困境:它们希望学到的策略 π \pi π 可以使随后agent的行为是最优的,但为了在生成episode时探索所有动作(以保证找到最优动作), π \pi π 不能是一个确定性策略,换句话说,它需要试探非最优动作(其实这个就是同轨方法预测q(s,a)时的保持试探问题)。
如何在保持试探的同时学习最优策略?“同轨策略方法” 其实是一种妥协 —— 它学习的策略不会100%给出最优动作,而是在大概率给出最优动作的同时,以小概率试探非最优动作。除非随着学习过程不断减小试探的概率,否则不能学到确定性的最优策略
更直接的方法是使用两个策略
目标策略target policy
:一般是确定性策略,用来学习并成为最优策略,记为 π \pi π行动策略behavior policy
:一般是不确定性策略,更有试探性,用于生成供agent学习的episode样本,记为 b b b在这种情况下,我们用另一个已知的策略 b b b 来生成episode,并用这些来自 b b b 的episode评估和改进 π \pi π,可以看作学习的数据 “离开” 了待学习的策略,因此整个过程被称为离轨策略学习(off-policy)。
定义
同轨策略(on-policy)方法
:这类方法中,“生成episode的策略” 和 “用于实际决策的待评估改进的策略” 是相同的离轨策略(off-policy)方法
:这类方法中,“生成episode的策略” 和 “用于实际决策的待评估改进的策略” 是不同的,即生成的数据 “离开” 了待优化的策略所决定的决策序列轨迹。相比于同轨策略方法
q(s,a)
的prediction)是其中的一个重要方面。下面回顾上一篇文章 强化学习笔记(4)—— 无模型(model-free)prediction问题 (α-MC方法、TD方法) 中讨论的model-free prediction方法,并结合刚刚说明的同轨、离轨概念加以补充。这是下面4.1节
和5.1节
的前置内容。请看 强化学习笔记(4)—— 无模型(model-free)prediction问题 (α-MC方法、TD方法)中第4节
核心方法:计算MC error
或TD error
,通过非稳定(或稳定)的增量式方法进行迭代更新,如下:
M C : Q ( S t , A t ) = Q ( S t , A t ) + α ( G t − Q ( S t , A t ) ) T D ( 0 ) : Q ( S t , A t ) = Q ( S t , A t ) + α [ ( R t + 1 + γ Q ( S t + 1 , A t + 1 ) ) − Q ( S t , A t ) ] \begin{aligned} MC:Q(S_t,A_t) &= Q(S_t,A_t) +\alpha(G_t-Q(S_t,A_t)) \\ TD(0):Q(S_t,A_t) &= Q(S_t,A_t) +\alpha[(R_{t+1} + \gamma Q(S_{t+1},A_{t+1}) )-Q(S_t,A_t)] \end{aligned} MC:Q(St,At)TD(0):Q(St,At)=Q(St,At)+α(Gt−Q(St,At))=Q(St,At)+α[(Rt+1+γQ(St+1,At+1))−Q(St,At)]
重点关注解决 “保持试探”
问题的两个方法
使用这两个方式解决 “保持试探” 问题,对应了基于同轨策略方法MC Control的两类方法
4.2节
的前置内容。重要度采样
:这是一种在给定来自其他分布的样本下,估计某种分布期望值的通用方法。几乎所有离轨策略方法都采用了重要度采样重要度采样比
:在离轨策略prediction中,我们需要目标策略下的return期望 E π [ G t ∣ S t = s ] \mathbb{E}_{\pi}[G_t|S_t=s] Eπ[Gt∣St=s],但由于episode来自行动策略b,我们只能获得 E b [ G t ∣ S t = s ] \mathbb{E}_b[G_t|S_t=s] Eb[Gt∣St=s],由于两种策略的动作分布不同,这显然是不准确的。不过,我们可以根据每个episode在目标策略和行动策略中出现的概率比例(相对概率)对其return进行加权调整,这样就可以获得目标策略下的return期望了。这个用于调整的相对概率就是重要度采样比
定义:为了方便起见,进行以下定义
使用策略 b b b 生成的若干episode数据来预测 v π ( s ) v_{\pi}(s) vπ(s)
对时刻进行编号时,即使时跨过episode的便捷,编号也递增(即若某一个episode在时刻t=100结束于某个状态,则下一个episode起始于t=101),这样我们就可以用唯一的时刻编号指定特定episode中的特定时刻。
定义 τ ( s ) \tau(s) τ(s)为所有访问过状态s的时刻的集合
定义 T ( t ) T(t) T(t) 来表示在时刻t后的首次终止时刻,即 t 所在episode的终止时刻
G t G_t Gt 表示在t之后达到 T ( t ) T(t) T(t) 时的return值,所以 { G t } t ∈ τ ( s ) \{G_t\}_{t \in \tau(s)} {Gt}t∈τ(s)就是状态s对应的回报值, { ρ t : T ( t ) − 1 } t ∈ τ ( s ) \{\rho_{t:T(t)-1}\}_{t \in \tau(s)} {ρt:T(t)−1}t∈τ(s) 是相应的重要度采样比
思路:要预测 v π ( s ) v_{\pi}(s) vπ(s),一般有两种方法
普通重要度采样
:根据重要度采样比来调整回报值,并对结果进行算术平均
V ( s ) = ∑ t ∈ τ ( s ) ρ t : T ( t ) − 1 G t ∣ τ ( s ) ∣ V(s) = \frac{\sum_{t \in \tau(s)}\rho_{t:T(t)-1}G_t}{|\tau(s)|} V(s)=∣τ(s)∣∑t∈τ(s)ρt:T(t)−1Gt
加权重要度采样
:根据重要度采样比来调整回报值,对结果进行加权平均。这里如果分母为0,则V(s)的定义也为0
V ( s ) = ∑ t ∈ τ ( s ) ρ t : T ( t ) − 1 G t ∑ t ∈ τ ( s ) ρ t : T ( t ) − 1 V(s) = \frac{\sum_{t \in \tau(s)}\rho_{t:T(t)-1}G_t}{\sum_{t \in \tau(s)}\rho_{t:T(t)-1}} V(s)=∑t∈τ(s)ρt:T(t)−1∑t∈τ(s)ρt:T(t)−1Gt
要对比这两种方法,可以考虑在首次访问情况下,访问单独一个episode后获取的估计值
在数学上,两种方法的差异可以用方差和偏差来表示
增量式实现
W=0
的情况(最后一行),下一轮迭代时修正量 [ G − Q ( S t , A t ) ] [G-Q(S_t,A_t)] [G−Q(St,At)]乘上的系数就是0,不能起到修正作用,所以这个动作及之前的轨迹都不再考虑,退出内层for循环即可。思想:从model-based control中经典Policy iteration算法入手,通过使用MC方法实现策略评估,把它改造成MC版本。这种方法从任意
策略 π 0 \pi_0 π0开始交替进行完整的
策略评估和策略提升,最终得到最优的策略 π ∗ \pi^* π∗和价值 V ∗ V^* V∗
两个假设
流程:迭代执行以下两步,直到 Q ( s , a ) Q(s,a) Q(s,a) 收敛到 q ∗ q^* q∗ 为止。最后在 q ∗ q^* q∗上贪心得 π ∗ \pi^* π∗
收敛性:根据策略改进定理(见 强化学习笔记(3)—— MDP中的prediction和control问题中 2.3.1.3 节),可以保证每一轮策略提升得到的策略一定更好,整个流程最终一定会收敛到最优
说明:这里提出了两个很强的假设来保证算法收敛,但这也使得此方法实用性很差
思想:去掉MC版Policy iteration中 “可以观测到无穷多episode” 这个假设
分析:事实上,不只MC版Policy iteration,即使是原版model-based情况下使用DP的Policy iteration,在做prediction的时候也有这个无限多episode假设。有两个方法可以放宽它
流程:使用第二种方法放宽假设,并且结合MC的特点,我们逐episode进行策略评估和提升。每采集一个episode执行如下两步,直到收敛为止
这种方法就称为 基于试探性出发的MC方法
,简称 蒙特卡洛ES
Unless
那行判断去掉可以改成每次访问型,差别不大Choose
那行,选择所有可能的 (s,a)二元组 作为起始状态收敛性: 蒙特卡洛ES方法一定可以收敛到最优策略。因为假如真的收敛到次优,其价值函数一定会收敛到这个次优策略对应的价值函数,而这时对Q(s,a)贪心肯定可以找到更好的策略,只有策略和价值都最优时才能保持稳定收敛。虽然这一点还没有严格的数学证明,我们认为这是RL种最重要的开放问题之一
思想:去掉MC版Policy iteration中 “试探性出发” 这个假设
分析:
软性策略/不确定性策略
:对于任意 s ∈ S s \in S s∈S 及 a ∈ A ( s ) a \in A(s) a∈A(s),都有 π ( a ∣ s ) > 0 \pi(a|s) > 0 π(a∣s)>0。这个策略每次面对状态s时可能做出不同的动作,但随着不断迭代,最终会逐渐逼近一个确定性的策略。这可以保证所有(s,a)二元组都有非零概率被选中-软性策略
:这是一种特殊的软性策略,要求对于任意 ϵ \epsilon ϵ>0、任意 s ∈ S s \in S s∈S 及 a ∈ A ( s ) a \in A(s) a∈A(s),都有 π ( a ∣ s ) ≥ ϵ ∣ A ( s ) ∣ \pi(a|s) \ge \frac{\epsilon}{|A(s)|} π(a∣s)≥∣A(s)∣ϵ ϵ \epsilon ϵ-贪心策略:在绝大多数情况下(1- ϵ \epsilon ϵ的概率)贪心地选择使Q(s,a)最大的动作,但同时以一个较小的概率 ϵ \epsilon ϵ 随机选择一个动作。不妨把使用贪心动作称作 “利用
”,使用随机动作称作 “探索
”,则对于最优动作而言,利用阶段有1的概率被选中,探索阶段有 1 ∣ A ( s ) ∣ \frac{1}{|A(s)|} ∣A(s)∣1的概率被选中;对于非最优动作,仅在探索阶段有 1 ∣ A ( s ) ∣ \frac{1}{|A(s)|} ∣A(s)∣1的概率被选中。即
这是一种简单的 “ ϵ \epsilon ϵ-软性策略”,在所有 “ ϵ \epsilon ϵ-软性策略”中,这在某种程度上是最接近贪心策略的
Unless
那行判断去掉可以改成每次访问型,差别不大收敛性:假设 π \pi π 是一个 ϵ \epsilon ϵ-贪心策略,评估它得到 q π q_{\pi} qπ,再在 q π q_{\pi} qπ上进行 ϵ \epsilon ϵ贪心得到新策略 π ′ \pi' π′。则对于任意 s ∈ S s \in S s∈S,有 q π ( s , π ′ ( s ) ) = ∑ a π ′ ( a ∣ s ) q π ( s , a ) = ϵ ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ( 1 − ϵ ) max a q π ( s , a ) ≥ ϵ ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ( 1 − ϵ ) ∑ a π ( a ∣ s ) − ϵ ∣ A ( s ) ∣ 1 − ϵ q π ( s , a ) = ϵ ∣ A ( s ) ∣ ∑ a q π ( s , a ) − ϵ ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ∑ a π ( a ∣ s ) q π ( s , a ) = ∑ a π ( a ∣ s ) q π ( s , a ) = v π ( s ) \begin{aligned} q_{\pi}(s,\pi'(s)) &= \sum_a \pi'(a|s)q_{\pi}(s,a) \\ &=\frac{\epsilon}{|A(s)|} \sum_a q_{\pi}(s,a) + (1-\epsilon)\max_a q_{\pi}(s,a) \\ &\ge \frac{\epsilon}{|A(s)|} \sum_aq_{\pi}(s,a) + (1-\epsilon) \sum_a \frac{\pi(a|s)-\frac{\epsilon}{|A(s)|}}{1-\epsilon} q_{\pi}(s,a) \\ &=\frac{\epsilon}{|A(s)|} \sum_aq_{\pi}(s,a) - \frac{\epsilon}{|A(s)|} \sum_aq_{\pi}(s,a) + \sum_a \pi(a|s) q_{\pi}(s,a) \\ &= \sum_a \pi(a|s) q_{\pi}(s,a) \\ &=v_{\pi}(s) \end{aligned} qπ(s,π′(s))=a∑π′(a∣s)qπ(s,a)=∣A(s)∣ϵa∑qπ(s,a)+(1−ϵ)amaxqπ(s,a)≥∣A(s)∣ϵa∑qπ(s,a)+(1−ϵ)a∑1−ϵπ(a∣s)−∣A(s)∣ϵqπ(s,a)=∣A(s)∣ϵa∑qπ(s,a)−∣A(s)∣ϵa∑qπ(s,a)+a∑π(a∣s)qπ(s,a)=a∑π(a∣s)qπ(s,a)=vπ(s)
这里第二个等号,前半部分是以 ϵ \epsilon ϵ 概率进行探索所获得的收益,其中包含1个最优动作 A ∗ = max a q π ( s , a ) A^* = \max_a q_{\pi}(s,a) A∗=maxaqπ(s,a),后半部分是以 ( ϵ \epsilon ϵ-1) 的概率去利用这个 A ∗ A^* A∗所获得的收益
第三行的不等号,其实是把利用阶段获取的收益(后半部分)进行了修改
因为我们定义最优动作获取的收益是最多的,所以最优动作的收益一定不少于所有动作的平均收益,这个不等号肯定成立
我们推出了 q π ( s , π ′ ( s ) ) ≥ v π ( s ) q_{\pi}(s,\pi'(s)) \ge v_{\pi}(s) qπ(s,π′(s))≥vπ(s),根据策略改进定理(见 强化学习笔记(3)—— MDP中的prediction和control问题中 2.3.1.3 节),可以保证 v π ′ ( s ) ≥ v π ( s ) v_{\pi'}(s) \ge v_{\pi}(s) vπ′(s)≥vπ(s),即每一轮策略提升得到的策略一定更好,整个流程最终一定会收敛到最优。
3.2.3
节中的分析相同,这个这个动作之前(含此动作)的轨迹都不再考虑,退出内层for循环GPI
框架,要求满足的假设从强到弱、实用性和通用性从弱到强
MC版Policy iteration(同轨)
:完全仿照model-based情况下的control方法policy iteration,只是把价值评估部分改用MC方法实现。它有两个很强的假设:“观测到无穷episode” 和 “保证试探性出发”蒙特卡洛ES(同轨)
:在MC版Policy iteration基础上,放宽 “观测到无穷episode” 这个假设。利用GPI的思想,每获得一个episode就对其覆盖的状态进行一次部分策略评估和提升,直到收敛为止。没有试探性出发假设的MC control方法(同轨)
:在蒙特卡洛ES的基础上,再放宽 “保证试探性出发” 这个假设。通过把策略从 “贪心” 改为 “ ϵ \epsilon ϵ-贪心” ,从而在优化策略的同时保持试探。基于离轨策略方法的MC control方法(离轨)
:如果只是使用 “ ϵ \epsilon ϵ-贪心” 策略,不能收敛到最优,因为总有 ϵ \epsilon ϵ的概率会随机选择动作(除非在训练中逐步减小 ϵ \epsilon ϵ,比如令 ϵ = 1 t \epsilon = \frac{1}{t} ϵ=t1)。但若使用离轨策略方法,这个问题便迎刃而解,这时我们可以使用更有试探性的行为策略(如 ϵ \epsilon ϵ-贪心)来训练一个固定的目标策略(如贪心)。不仅如此,行为策略还可以来自其他非学习型算法或人类专家,这使离轨方法更加强大和通用。注意策略评估时要使用 “重要度采样比” 修正分布偏差。思想:sarsa prediction其实就是3.1
节提到的 “同轨策略下 q(s,a) 的TD prediction” 方法。对于如下每一幕episode
对于episode中每个二元组 ( S t , A t ) (S_t,A_t) (St,At) ,观测环境转移 ( S t , A t ) → P ( R t + 1 , S t + 1 ) (S_t,A_t) \stackrel{P}{\to} (R_{t+1},S_{t+1}) (St,At)→P(Rt+1,St+1) 得到下一时刻状态 S t + 1 S_{t+1} St+1,再用同轨策略 π \pi π 获得下一时刻动作 S t + 1 → π A t + 1 S_{t+1} \stackrel{\pi}{\to} A_{t+1} St+1→πAt+1,然后基于二元组 ( S t + 1 , A t + 1 ) (S_{t+1},A_{t+1}) (St+1,At+1) 的当前价值估计 Q ( S t + 1 , A t + 1 ) Q(S_{t+1},A_{t+1}) Q(St+1,At+1),通过稳定(或非稳定)增量式方法进行迭代更新二元组 ( S t , A t ) (S_t,A_t) (St,At) 价值(若状态是终止状态,对应的Q函数值为0)。这个过程简单说就是要多往前看一步,Q函数递推更新公式如下:
Q ( S t , A t ) = { Q ( S t , A t ) + α [ ( R t + 1 + γ Q ( S t + 1 , A t + 1 ) ) − Q ( S t , A t ) ] , S t 不 是 终 止 状 态 0 , S t 是 终 止 状 态 Q(S_t,A_t) =\left\{ \begin{aligned} & Q(S_t,A_t) +\alpha[(R_{t+1} + \gamma Q(S_{t+1},A_{t+1}) )-Q(S_t,A_t)] &,S_t不是终止状态 \\ & 0 & ,S_t是终止状态 \end{aligned} \right. Q(St,At)={Q(St,At)+α[(Rt+1+γQ(St+1,At+1))−Q(St,At)]0,St不是终止状态,St是终止状态
更新规则用到了五元组 ( S t , A t , R t + 1 , S t + 1 , A t + 1 ) (S_t,A_t,R_{t+1},S_{t+1},A_{t+1}) (St,At,Rt+1,St+1,At+1) 中的所有元素,这正是 “Sarsa” 这个名称的由来。
回溯图:可以看到,每一次更新Q函数, S t → A t S_t \to A_t St→At 和 S t + 1 → A t + 1 S_{t+1} \to A_{t+1} St+1→At+1使用了两次试探性策略 π \pi π
思想:
TD target
= R t + 1 + γ Q ( S t + 1 , A t + 1 ) R_{t+1} + \gamma Q(S_{t+1},A_{t+1}) Rt+1+γQ(St+1,At+1)收敛性:只要保证所有 (s,a) 二元组都能被无限多次访问到,control过程就能收敛。如果让试探概率 ϵ \epsilon ϵ 在评估过程中逐渐递减(比如让 ϵ = 1 t \epsilon = \frac{1}{t} ϵ=t1),sarsa就能以1的概率收敛到最优的策略和价值函数
示例(有风的网格世界)
思想:
value-based
方法,显式学习最佳动作价值函数 q ∗ q_* q∗, π ∗ \pi_* π∗由 q ∗ q_* q∗隐式表示(基于 q ∗ q_* q∗做一遍贪心)TD target
= R t + 1 + γ max a Q ( S t + 1 , a ) R_{t+1}+\gamma \max_aQ(S_{t+1},a) Rt+1+γmaxaQ(St+1,a),Q函数更新方式如下:value-based
方法,在线学习过程中,始终采用试探性的行动策略 b b b 和环境交互,如果Q函数收敛后不进行一步离线贪心得 π ∗ \pi_* π∗ 的操作,就无法用 π ∗ \pi_* π∗ 和环境交互来获得最大奖励,除非在学习过程中逐步减小试探概率至0,这样行动策略 b b b 也会收敛到 π ∗ \pi_* π∗回溯图:可以看到,相比Sarsa,Q-learning在 S t → A t S_t \to A_t St→At 使用了试探性行动策略 b b b,在 S t + 1 → a S_{t+1} \to a St+1→a 使用了贪心目标策略 π \pi π
收敛性:只要保证所有 (s,a) 二元组都能被无限多次访问到,状态动作价值函数Q就能以1的概率收敛到 q ∗ q_* q∗;如果使行动策略 b b b 的试探概率 ϵ \epsilon ϵ 在评估过程中逐渐递减(比如让 ϵ = 1 t \epsilon = \frac{1}{t} ϵ=t1), b b b 也能在在线学习过程中以1的概率收敛到最优策略 π ∗ \pi_* π∗
Q-learning 不需要重要性采样比:作为一个 off-policy 算法,Q-learning 不需要重要性采样比,这是因为其是以 optimal Bellman 估计量作为目标,即
q ∗ ( s , a ) = max E π ∗ [ G t ∣ S t = s , A t = a ] = max E π ∗ [ R t + 1 + γ G t + 1 ∣ S t = s , A t = a ] = E [ R t + 1 + γ max a ′ q ∗ ( S t + 1 , a ′ ) ∣ S t = s , A t = a ] = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ max a ′ q ∗ ( s ′ , a ′ ) ] \begin{aligned} q_*(s,a) &= \max\mathbb{E}_{\pi_*}[G_t|S_t=s,A_t=a] \\ &= \max \mathbb{E}_{\pi_*}[R_{t+1}+\gamma G_{t+1}|S_t=s,A_t=a] \\ &= \mathbb{E}[R_{t+1}+\gamma \max_{a'}q_*(S_{t+1},a')|S_t=s,A_t=a] \\ &= \sum_{s',r}p(s',r|s,a)[r+\gamma \max_{a'}q_*(s',a')] \end{aligned} q∗(s,a)=maxEπ∗[Gt∣St=s,At=a]=maxEπ∗[Rt+1+γGt+1∣St=s,At=a]=E[Rt+1+γa′maxq∗(St+1,a′)∣St=s,At=a]=s′,r∑p(s′,r∣s,a)[r+γa′maxq∗(s′,a′)] 注意到:等式右侧的期望只与状态转移分布有关而与策略无关,不论训练 transition 来自于哪个策略,按照Q-Learning的更新式更新都能使 Q Q Q 函数接近 Q ∗ Q^* Q∗,因此 Q-Learning 可以不采用重要性采样 (DQN算法同理)
联系 4.2 节分析一下,离轨算法需要重要性采样比的原因,本质上是价值估计和策略分布有关;而在 Q-learning 中,只有行为策略会决定价值,目标策略是通过 arg max \argmax argmax 操作从价值派生出来的,所有这类方法都不需要重要度采样比
对比Sarsa和Q-learning(示例:在悬崖边行走)
思想:
TD target
= R t + 1 + γ E [ Q ( S t + 1 , A t + 1 ) ∣ S t + 1 ] R_{t+1}+\gamma \mathbb{E}[Q(S_{t+1},A_{t+1}) | S_{t+1}] Rt+1+γE[Q(St+1,At+1)∣St+1],Q函数更新方式如下:期望Sarsa
回溯图: S t → A t S_t \to A_t St→At 使用同轨策略 π \pi π 还是离轨策略 b b b 决定了期望Sarsa是同轨还是离轨
对比期望Sarsa、sarsa、Q-learning(示例:在悬崖边行走):
假设在基于离轨方法实现期望Sarsa时,目标策略 π \pi π 选择贪心策略,行动策略 b b b 选择一个试探性策略,这时 E [ Q ( S t + 1 , A t + 1 ) ∣ S t + 1 ] = max a Q ( S t + 1 , a ) \mathbb{E}[Q(S_{t+1},A_{t+1}) | S_{t+1}] = \max_aQ(S_{t+1},a) E[Q(St+1,At+1)∣St+1]=maxaQ(St+1,a) ,期望Sarsa就退化为Q-learning。可以说期望Sarsa推广了Q-learning,Q-learning是期望Sarsa的一种特例
TD control
算法都包含 “最大化操作
”,比如Q-learning中目标策略 max a Q ( S t + 1 , a ) \max_aQ(S_{t+1},a) maxaQ(St+1,a) 的贪心操作,或是sarsa中的 ϵ \epsilon ϵ-贪心操作确定价值最大的动作
和估计价值
这两个过程使用了相同的样本(多幕序列),用Q-learning的Q函数更新公式计算 Q ( A , 向 左 ) Q(A,向左) Q(A,向左)时,带入参数值有确定价值最大动作
:每轮更新时, max a Q ( B , a ) , a ∈ N ( − 0.1 , 1 ) \max_a Q(B,a),a \in \mathcal{N}(-0.1,1) maxaQ(B,a),a∈N(−0.1,1) 这个操作,会使B到左边终态的每一个可能路线进行一次 N ( − 0.1 , 1 ) \mathcal{N}(-0.1,1) N(−0.1,1) 上的采样作为奖励(也是 Q ( B , a ) Q(B,a) Q(B,a)),一旦某个采样结果为正奖赏,这里的最大化操作就会选出一个具有正价值的二元组 ( B , a ) (B,a) (B,a)估计价值
:直接使用 max a Q ( B , a ) \max_a Q(B,a) maxaQ(B,a) 估计 Q ( A , 向 左 ) Q(A,向左) Q(A,向左) 时,导致最大化操作得到的早期正价值进一步转移到 Q ( A , 向 左 ) Q(A,向左) Q(A,向左) 上,使得学习过程初期倾向于选择向左。分析
最大化操作
选出的动作 a a a,其状态动作价值 Q ( S t + 1 , a ) Q(S_{t+1},a) Q(St+1,a) 是真实状态动作价值 q ( S t + 1 , A t + 1 ) q(S_{t+1},A_{t+1}) q(St+1,At+1) 的一个有偏估计(偏大),又由于确定价值最大的动作
和估计价值
这两个过程使用了相同的样本(多幕序列),导致依赖 Q ( S t + 1 , a ) Q(S_{t+1},a) Q(St+1,a) 进行计算的 Q ( S t , A t ) Q(S_t,A_t) Q(St,At) 也成为有偏估计。思想:
完备MDP
设计的算法中,例如双Q学习
、双sarsa学习
、双期望sarsa学习
等。以双Q学习为例,所有时刻被一分为二,以一半一半的概率执行以下两个更新本节综合讨论了TD control的若干方法,它们都使用GPI
框架。在prediction阶段,我们也会遇到MC Control中的 “保持试探” 问题,根据prediction时使用的是同轨还是离轨方法,可以把TD control方法分成同轨和离轨两类。
Sarsa(同轨)
:使用同轨的 ϵ \epsilon ϵ-贪心” 策略 π \pi π 保持试探;更新时用 π \pi π 往前看两步Q-learning(离轨)
:使用试探性的 ϵ \epsilon ϵ-贪心” 策略作为行动策略 b b b 保持试探,使用确定性贪心策略 π \pi π 作为目标策略。是一种value based
方法期望Sarsa(同轨或离轨)
:使用试探性的 ϵ \epsilon ϵ-贪心” 策略作为行动策略保持试探,目标策略可以和行动一致也可不一致,依赖下一步状态价值的期望进行更新双学习(同轨或离轨)
:为了消除最大化偏差而使用的一种技巧,可以用来扩展各种为完备MDP设计的算法。以上三种算法都可以扩展到双学习版本扩展方向
单步
、表格型
、无模型
的TD方法。它们的的共同特性是可以用在线地用相对少的计算量处理经验,都用TD error驱动