深度强化学习(五)Model Free Control

前言

  1. 行为策略(Behavior Policy)和目标策略(Target Policy)
    • 行为策略用来与环境互动产生数据的策略,即在训练过程中做决定;
    • 目标策略是学习训练完毕用来应用的策略;
    • 存在两个策略的原因:强化学习中存在 exploitation(利用) 和 exploration(探索) 的问题,我们需要使用行为策略来保持探索性,来优化我们的目标策略
  1. On Policy:实际上就是行为策略和目标策略是一个策略;

    • “Learn on the Job”: 通过在策略 π 抽取的经验中来学习更新策略 π

    • 优势:简单粗暴

    • 劣势:很可能只能找到局部最优解;因为利用和探索是一对矛盾,一方多必然导致另一方少,因此要平衡两者,就很难在保持利用的同时,充分地进行探索

  2. Off Policy:将目标策略与行为策略分开

    • “Look over someone’s shoulder”: 通过在策略 μ 抽取的经验中来学习更新策略 π

    • 优势:可以充分地进行探索,因此可以找到最好的策略;

    • 难点:如何在一个策略下产生的数据来优化另外一个策略

  3. On-policy-与Off-policy的区别在于:更新价值所使用的方法是沿着既定的策略(on-policy)抑或是新策略(off-policy)

  • 本文首发于个人博客,欢迎到访本站获取更加系统全面的分享

一、Introduction

  1. 课程回顾:

    • 上节课:
      • Model-free Prediction
      • 评估一个未知的 MDP 的状态值函数
    • 本节课:
      • Model-free Control
      • 优化一个未知的 MDP 的状态值函数
  2. 为什么要使用无模型的强化学习

    • 实际上很多现实的问题都可以抽象为一个 MDP,但是对于 这其中的大多数的问题,MDP 或者是未知的,或者虽然是已知的,但是过于复杂,而 model-free control 可以解决这些问题

二、On-Policy Monte-Carlo Control

1)Generalised Policy Iteration【回顾】
  • 实际上我们交替地对于 Policy 进行评估和优化,最终状态值函数和策略都收敛于最优状态值函数和最优策略;【这在 DP 中我们是见到过的】

    • 从一个策略 π 和一个价值函数 V 开始,每一次箭头向上代表着利用当前策略进行价值函数的更新
    • 每一次箭头向下代表着根据更新的价值函数贪婪地选择新的策略;
    image-20210217161050549
2)Generalised Policy Iteration With Monte-Carlo Evaluation
  • 上面的方法是不是适合于蒙特卡洛(MC)方法呢?不可以!存在至少下面两个方面的问题:

    1. 上面的动态规划来优化策略,需要知道某一个状态的所有后续状态以及状态间转移概率,即:

      image-20210217163739323
      • 解决方法:我们可以采用下面的方法来代替:

        image-20210217164135525
      • 修改后的方法:从一个初始的 Q 和策略 π 开始,先根据这个策略更新每一个状态行为对的 q 值,随后基于更新的 Q 确定改善的贪婪算法

        image-20210217164918645
    2. 还有一个问题是:当我们每次使用贪婪算法来改善策略的时候,将有可能由于没有足够的探索,而不能产生最优的策略,而是被卡在局部最优解【我们实际上需要不时地尝试一些新的行为,即探索】

      • 一个简单的方法是:确保持续地进行探索 ;在状态 s 上可以采取的不同的 m 个 actions 中,所有的 action 的概率都不是 0;ε-Greedy Exploration:

        • 1- ε 的概率根据贪婪算法,选择当前策略下最优的 action
        • ε 的概率随机地选择一个动作
        image-20210217171149909
3)ε-Greedy Policy Improvement
  1. 定理:证明使用 ε-Greedy 方法至少一定会比原来的策略同样好

    image-20210217172400578
    • 证明:
    image-20210217172744306
  2. 因此我们就完全解决了上述的两个问题,Mote-Carlo Policy Iteration 就会变成下面的样子:使用 Q 函数进行策略评估,使用 ε-Greedy 探索来改善策略

    image-20210217173459664
    • 每一个向上或者向下的箭头都对应多个 Episodes,即经过多个 Episodes 之后才会更新一次 Q 函数或者优化 Policy。
4)Monte-Carlo Policy Control
  • 其实,我们可以使得上面的过程更加高效,没有必要完全地 evaluate the policy;

  • 我们实际上不必等待多个 Episodes 来收集信息,我们可以每个 Episode 都进行更新

    image-20210218163907708
5) GLIE

实际上我们需要平衡两个方面:

  1. 我们需要不断地保持探索,这样才能不断地优化我们的策略
  2. 我们希望得到一个策略,这个策略不需要再进行探索优化,因为我们需要的是最好的策略,最好的策略应该是不包含这种随机的行为

其中一种平衡这种的方法是:Limit with Infinite Exploration (GLIE)

  1. 定义:

    image-20210218165537527
    • 比如:ε-Greedy 是 GLIE ,当在 ϵ k = 1 k \epsilon_k = \frac{1}{k} ϵk=k1 的时候 ε 衰减为 0
  2. GLIE Monte-Carlo Control

    • 使用当前的策略 π 获取第 k 个 Episode: { S 1 , A 1 , R 2 , . . . , S T } \{ S_1, A_1, R_2, ..., S_T\} {S1,A1,R2,...,ST}

    • 对于这个 Episode 路径中的每一个状态 S t S_t St 和 行为 A t A_t At ,使用下面的方法进行更新:

      image-20210218212925182
    • 根据新的行为值函数(action-value function),即 Q 函数来提升 Policy

      image-20210218213057247

    定理:GLIE蒙特卡洛控制能收敛至最优的状态行为价值函数

三、On-Policy Temporal-Difference Learning

1) MC vs TD Control
  • TD 算法相对于 MC 算法的优势:
    1. 低方差(lower Variance)
    2. 在线学习(Online)
    3. 可以使用不完整的序列
  • 方法:在我们的 Control 循环中,使用 TD 算法代替 MC 算法:
    1. 使用 TD 算法来更新 Q(S, A)
    2. 使用 ε-greedy 来优化 policy
    3. 每一步都进行更新(而不需要等到一个 Episode 结束)
2)Sarsa(λ)
  • Sarsa 名字的来源就是下图中所示:从一个特定的 (S, A)对开始,获取 R,到达另外一个状态,然后采取另外一个行动。如图,从上到下,组合起来就是 Sarsa

    image-20210221121635263

    image-20210221123732036

  • On-Policy Control With Sarsa

    • 与 MC 算法的不同是:在每个 Episode 中每一个状态 S 采取行动 A 后都有更新 Q 值
    image-20210221124425335
  • Sarsa 算法:

    image-20210221125254323
  • Sarsa 算法收敛性:当满足下面的条件的时候,Sarsa 收敛于最佳动作值函数(optimal action-value function)

    image-20210222080710306
    • 上面图中第一个式子,说明 step size 要足够的大,这样可以足够远地移动 Q value
    • 第二个式子告诉我们,最后Q value 在最后的改变越来越小

    通常使用 Sarsa 的时候,我们并不需要担心上面的,因为 Sarsa 会运行的很好

  • 举个栗子:有风方格世界

    • 从右图中的训练过程中可以看出,在优化的早期,在前面的 2000 步中,只完成了有限的 Episodes,但是随着训练的进行,后面的速度越来越快
    image-20210222085835040
  • n-step Sarsa

    • 实际上,Sarsa 算法是只考虑一步,然后就优化 Q 值的,而 MC 算法是一直考虑到 Episode 结束的;因此,它们之间有如下的关系:

      image-20210222090638267
    • 我们可以统一上面的式子,定义 n-step Q-return

      image-20210222090736744
    • 根据上面的式子,我们可以定义 n-step Sarsa,即不仅仅是考虑一步,而是考虑 n 步:

      image-20210222090903153
  • **Forward View Sarsa(λ) **

    • 实际上,这里是考虑结合所有的 n-step,如下图,是从考虑一步到考虑无穷步(一直到终止点);使用加权平均的方法;
    • 这样做的一个弊端是:需要遍历完整的 Episode 才能更新 Q 值【并不是在线学习】
    image-20210222092519305
  • Backward View Sarsa(λ)

    • 可以回顾上一节的关于 Eligibility Traces(ET) 的概念:实际上就是一个状态的影响是随着时间递减的;这里与上一节不同的是针对的不是一个状态,而是一个状态行为对:

      image-20210222095348172
    • 这个体现的是一个结果与一个状态行为对之间的关系,最近且频繁发生的状态行为对对结果的影响最大

    • 引入 ET 概念之后 Q 值更新的方法:

      image-20210222100137964
    • 新的算法

      • E(s, a) 在每浏览一个 Episode 之后都需要重新置为 0,这个体现了 ET 仅仅在一个 Episode 中起作用;
      • 更新 Q 和 E 的时候并不是针对当前的状态和行为,而是所有的状态和行为都要进行更新
      image-20210222101447711
  • 标准 Sarsa 与 Sarsa(λ) 的对比

    • 对标准的 Sarsa 来说,实际上每一个 Episode 仅仅有效地更新了一个 Q 值
    • 对于 Sarsa(λ) 来说,因为奖励的延迟,当获得一个奖励的时候,会考虑是什么因素影响了这个奖励,实际上就是用 E(s, a) 来记录这个影响的,越是距离最终的这个结果越近或者发生越频繁的,对这个结果影响越大,因此,会根据 E(s, a) 来更新历史路径上的 Q 值

    image-20210222103504222

四、Off-Policy Learning

1)为什么使用 off-policy?
  1. 希望通过观察人类或者其他智能体来学习
  2. 希望重复使用从旧的 policy 中获取的经验
  3. 在遵循一个探索式的 Policy 的同时优化现有的策略
  4. 通过遵循一个 policy 来学习多个policies
2)Importance Sampling

image-20210222115110955

  • Importance Sampling for Off-Policy Monte-Carlo【仅有理论价值,没有实际意义】

  • MC 算法的 off-policy 是没有实际使用价值的【因为方差会非常大】

  • Importance Sampling for Off-Policy TD

    • 离线 策略 TD 学习就是使用 TD 方法在遵循一个策略 μ(a|s) 的同时评估另外一个策略 π(a|s)

      image-20210222132253178
    image-20210222133349355
3)Q-learning
  • 这里不需要 Importance Sampling;

  • 使用 behaviour policy 来选择下一个动作:

    image-20210222141149865
  • 但是我们可以根据目标策略来考虑另外的下一个动作:

    image-20210222141256493
  • 实际上使用目标策略选择的行为来更新 Q 值:

    image-20210222141725065
  • 什么是 Q-learning: 【behaviour policy 和 target policy 都可以优化,这是 Q-Learning 特殊的地方】

    • behaviour policy 是基于当前 Q 值的一个 ε-greedy 策略;

    • target policy 是基于当前 Q 值的完全 greedy 策略;

      image-20210222142841712
  • 所以上文中红色部分可以进行如下的简化:

    image-20210222143146889
  • 图解 Q-Learning 算法

    image-20210222143347968
  • Q-Learning 算法伪代码:

    image-20210222143629619

五、Summary

  • 动态规划(DP)与 TD 算法的关系

    image-20210222144117242 image-20210222144255133

Reference

  1. Bourne强化学习笔记1:用简单例子说明Off-policy的思想与使用方法
  2. 《强化学习》第五讲 不基于模型的控制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值