强化学习基础知识梳理(7)

顺序以周博磊老师强化学习纲要课程为主,增加王树森老师强化学习基础的知识补充,和蘑菇书的知识补充,作为学习记录

第⑦章:基于环境模型的强化学习

主要内容:

  1. 基于环境模型的强化学习概要 
  2. 环境模型计算
  3. 基于环境模型的价值函数优化和策略函数优化

一、基于环境模型的强化学习概要 

  1. 关于offline RL
    1. on-policy与off-policy
      1. on-policy:采样所用policy与目标policy一致,采样后进行学习,学习后目标policy更新,此时需要把采样的policy同步更新保持与目标policy一致
      2. off-policy:采样的policy与目标policy不一致,目标policy多次更新,采样后的数据可以多次使用
    2. online与offline
      1. online:与环境有交互,通过采集数据进行学习
      2. offline:不于环境交互,直接通过采集到的轨迹数据学习,达到目标最大化(也可以被定义为数据驱动(data-driven)形式的强化学习问题)
    3. learning与planning

      1. learning:环境初始未知,agent不知环境如何工作,agent通过不断与环境交互改进策略(形成模型)

      2. planning:环境已知,知道环境运作规则,或agent能计算出模型,不需要与环境进行任何交互,只要知道当前状态,就可以寻找最优解。

      3. planning是执行动作前做出的决策,称为规划,存在经典的规划算法可以求解相关问题(如MDP中的价值迭代和策略迭代就属于这一类动态规划的优化方法)

    4. offline RL的分类

      1. 首先,行为策略πβ与环境交互以收集经验并将其存储在静态数据集D中。
      2. 可选地过滤数据(例如,使用一些启发式或基于值的方法)以仅保留来自高回报轨迹的经验。
      3. 剩余样本可用于直接学习策略πθ、学习环境模型(动力学模型dynamics model)或轨迹分布的模型。
      4. 选择学习轨迹分布,我们可以将其用于规划,规划感兴趣的是选择具有最高回报的轨迹。
      5. 选择学习环境模型,可以选择是使用模型进行规划,还是模型与真实环境生成合成样本来学习策略。
      6. 选择学习策略,我们可以在演员-评论家算法和模仿学习方法之间进行选择,后者通常依赖于良好的过滤过程或适当的结果来限制学习的策略。
      7. 这里就涵盖了我们本章所讲的model-based,以及后面会提到的轨迹优化问题。
  2.  环境模型定义(什么是model)

    两部分组成:
    1. 奖励函数

    2. 状态转移函数(基于当前状态和动作决定下一状态)

    3. 通常假设这两个函数之间是独立关系

  3. 回顾:
    1. 之前介绍的方法是model-free方法
      1. 即没有环境模型(即奖励函数和状态转移函数)
      2. 直接和环境交互训练策略函数(policy gradient方法)(采集到experience)
      3. 通过MC和TD方法学习价值函数
    2. 之前MDP问题中的预测和控制问题是基于环境模型解决的,通过动态规划的方法解决的(也就是上文提到的planning)(现实生活中没有明确的环境模型)
      1. 对于预测(就是计算每个状态的价值):将贝尔曼期望备份反复迭代,得到一个收敛的价值函数的值。最终得到每个状态的价值‘(策略已经确定)(t表示迭代次数)
      2. 对于控制:(寻找最佳策略)
        1. 策略迭代:
          1. 包括两部分:策略评估和策略改进
          2. 保持当前策略不变,估算其状态价值函数
          3. 得到状态价值函数后,进一步推算其Q函数,对Q函数进行最大化(进行贪心操作argmax)改进策略
        2. 价值迭代:将贝尔曼最优方程当做更新规则来进行,直接用该方程进行迭代,迭代多次直到价值函数收敛
  4.  model-based与MDP的区别(之前的MDP中环境模型是直接给出的)
    1. 通过与环境的交互结果学习一个环境模型(即model,对环境的建模即奖励和状态转移函数)
    2. 重点:通过experience学习一个环境模型,用于更好的优化价值函数和策略函数的估计(利用planning的算法得到更好的策略)
    3. 此时agent不仅可以与环境交互,也可以与模型交互
  5. model-based的RL算法结构(增加了下半部分)

    1. experience的用处增加  
      1. 估计环境模型(model learning过程)

      2. 估计价值函数和策略函数

  6.  model-based优势

    1. 方法具有更好的样本效率(sample efficiency)

      1. 本身sample efficiency在强化学习中就很重要

      2. 之前的算法中是在虚拟环境(游戏、象棋等),可以容易得到大量数据,在这方面影响并不大

      3. 现实生活中则很重要,例如机器手臂的模拟活动,实际操作很容易使机器手臂损坏

    2. 环境模型可以通过监督学习方法得到有效学习成果(使策略函数和价值函数优化更容易)

      1. 简单介绍:监督学习简单理解就是训练集本身存在标签(即已知数据及其对应输出),然后进行训练得到最优模型。

      2. 监督学习目标往往是让计算机去学习我们已经创建好的分类系统(具备对未知数据分类的能力)

    3. 不同算法的sample efficiency(学习系统达到任何选定的目标性能水平所需要的数据量)

       (进化算法,gradient-free中无法得到gradient,需要大量尝试才能优化)(on-policy自己采集数据自己更新,每次都要重新采集数据)(off-policy保留了采集数据的策略和要优化的策略)(对model-based来说,对于一些简单问题很容易得到状态转移函数和奖励函数,同时也就很容易实现对价值函数等的优化)

  7. 存在问题

    1. 环境函数自身也需要通过神经网络等方式拟合,误差增加 (model-free误差来自对价值函数和策略函数的拟合)

    2. 环境模型的误差使结果进一步不能保证收敛 (即优化过程十分不稳定)

二、 环境模型计算

  1. 第一步目的:训练一个环境模型
    1. 首先与真实环境交互得到很多experience,从而得到某个状态和动作可能导致的下一奖励和状态等
    2. 通过监督学习的方法得到环境(可以直接从experience中提取出)
    3. 奖励函数是一个回归问题(训练一个回归模型)
      1. 回归问题是指:用于预测输入变量和输出变量之间的关系,特别是输入变量的值发生变化时,输出变量的值随之发生的变化
      2. 这里就是指对于某个状态的某个动作可以得到的奖励值的拟合
    4. 状态转移函数是一个密度估计问题(density estimation)
      1. 即输出是下一个状态的各种可能性,本身是一个概率分布的数据
    5. 上面两个问题可以通过监督学习方法进行训练和优化
    6. 选择常见损失函数优化环境模型(MSE均方误差,KL散度等)
  2. 常见环境模型类型(基于环境本身可以采取不同模型)
    1. 如下:(查表模型)(线性期望模型)(线性高斯模型)(高斯过程模型)(深度信念网络模型)

    2. 最简单的table lookup model

      1. 通过counting方法估计状态转移函数和奖励函数(数数方法)
      2. 简单理解就是:通过采样,将相同结果加和,再求出占比,可以知道给定某个状态后,采取某个行为进入下一个状态的概率(或者是通过加权平均估计出奖励函数)
      3. 举例:
        1. 通过数据可知:经过A结点1次且下一次到达B,奖励为0;经过B结点8次,两次奖励为0,6次为1,经过计算可得如下结果
        2. 采样得到的轨迹:
        3. 状态转移估计:
  3. 引入模型后的问题
    1. 此时的结果的准确性,与估计出模型的准确性有很大关联
    2. 当环境模型并不准确时,规划planning得到的策略也并不准确
    3. 解决方法:
      1. 增加置信度的评判
      2. 如果环境模型置信度低,可以直接使用model-free方法:使用probabilistic model(Bayesian、Gaussian Process)(这种环境模型输出结果的时候自身会带不确定性)
  4. 基于model的强化学习方法
    1. model-free RL
      1. 没有model
      2. 从真实轨迹中学习策略、价值函数
    2. model-based RL
      1. 从真实轨迹中学习model
      2. 从模拟经验中估计策略、价值函数
    3. Dyna(dina)
      1. 从真实轨迹中学习model
      2. 从真实和模拟经验中估计策略、价值函数
      3. 方法介绍:
        1. 可以补充样本数量少的问题(有两种experience)
          1. real experience作用一是直接更新价值函数,作用二是估计模型
          2. 得到model后,得到模拟数据和真实数据结合,进一步更新函数(优势就在于可以用大量的模拟数据填补真实数据缺少的问题)
        2. 先用model-free的方法估计Q函数(abcd),再利用(e)估计环境模型model,然后对环境模型进行采样得到大量模拟数据,对Q函数进行更新

 三、基于环境模型的价值函数优化和策略函数优化

  1. 回顾:model-free中的基于价值函数和策略函数的优化

    1. 基于价值函数优化:Sarsa、Q-learning(估计状态价值)、DQN(使用神经网络)

    2. 基于策略函数优化:Policy Gradient、Actor-Critic(A2C)等

  2.  环境模型两种利用方法(第一步:得到环境模型)

    1.  基于环境模型的价值函数优化(对环境模型进行采样,作为真实轨迹进行价值函数优化)(比较标准的流程如下)

    2. 基于环境模型的策略函数优化(将环境模型引入策略优化)

  3. 价值函数优化(直接方法)(得到模型过后如何进行planning)
    1. 对环境模型直接进行采样得到轨迹
    2. 利用采样结果使用之前的方法进一步计算(指对价值函数的计算) Monte-Carlo control Sarse Q-learning
  4.  策略函数优化:
    1. 关键:
      1. 将模型整合到policy gradient中(PG是model free)
      2. PG中,在公式推导过程中,环境模型中的状态转移函数其实并不需要(求导后为0)
      3. 探究在已知环境模型的情况下如何进一步优化PG方法
    2. 与控制论、最优控制的关系(也就是说,除了估计出模型外,具体的后续操作都是用的最优控制的思想)(也就是说,存在模型之后,就直接使用了最优控制的思想)
      1. model-based的策略优化受控制论影响深远(控制过程是为了优化controller)
        1. 在控制问题中,我们通过优化轨迹来最小化代价函数或者最大化回报函数
        2. 最优控制,是指在约束条件下达到最优的系统表现(就类似于在强化学习中在指定环境中希望得到的奖励最大)
        3. 此时环境模型称为system dynamics(系统动力学)函数s=f
        4. 代价函数(cost function)是对整个系统中需要优化的指标的汇总,通过使代价函数尽可能小来得到整个系统的最优表现(因为系统中会有很多优化指标)
      2. optimal control问题(system dynamics已知)(system dynamics就是环境模型)(就是这个f函数)
      3. cost function可以看做是RL中的negative reward,每一步控制都希望cost function可以尽可能的小,在满足这个环境模型即这个f函数的条件下对action动作进行优化。这样就是将环境模型加入了动作优化问题。
      4. 最优控制问题在控制理论中有很多现成算法可以对其进行轨迹优化:LQR / iLQR等(轨迹优化,也就是动作的选择)
      5. 所以最优控制问题与强化学习的基于策略优化思想有很深远的联系,接下来就是通过介绍将model learning加入最优控制问题的求解来表现model-based的策略优化问题思想(即上面所提到的轨迹优化问题)
      6. 要让车辆避开障碍物到达目标点,且system dynamics已知,那么这就是一个轨迹优化的最优控制问题

    3. optimal contorl与model based方法的结合(基于模型的轨迹优化方法)
      1. 算法一:
        1. 由于dynamics model未知,将model learning和 trajectory optimization(轨迹优化)n结合
        2. 首先,运行基础策略得到轨迹(这里是随机策略,得到很多轨迹D)
        3. 利用轨迹学习dynamics model 即f使其可以最小化MSE(此时model由未知变已知)
        4. 利用optimal control方法优化,了解每一步的动作
        5. 2中利用强监督方法估计模型
        6. 3中利用LQR等方法计算最佳轨迹
        7. 问题:drifting,前期误差会很影响最终结果(也就是说在轨迹进行优化的时候,如果在最早的时候出现一点误差,那么产生的轨迹可能就会离得非常远了)而且模型有可能会掉到一个之前没有采样到的区域
          1. ​​​​​解决方法是在算法1中加入迭代过程得到算法2
      2. 算法二:
        1. 利用基础策略采集数据(与1相同)
        2. 循环(iteration)
          1. 利用轨迹估计dynamics model,最小化MSE
          2. 利用model轨迹优化得到动作,产生action后就会得到一条新的轨迹(即根据model决定了整个轨迹上的所有动作)(产生新轨迹,可能产生之前未采集到轨迹)
          3. 补充之前没有出现的状态动作等进入训练数据
        3. 实现model的不断更新,从而得到更准确的模型
        4. 问题:在估计模型之前就执行all planned actions(即估计出的完整轨迹),可能导致轨迹一开始就离需要轨迹很远(也就是循环中第二步利用model得到的动作后会得到一个新的完整轨迹)
      3. 算法三:
        1. 进一步改进:执行每一步都将后续轨迹估计出来
        2. 即MPC(Model Predictive Control)(在自动驾驶和控制里的常用算法)
          1. 对所有轨迹进行优化,但是执行时只执行最前面的轨迹,循环
          2. 产生整个轨迹,但实际只执行一步,执行完后再重新估计
        3. 将MPC的思想应用到model learning思想中
          1. 与2 的区别在于,在学习到model之后,首先根据model估计动作得到轨迹,但只执行轨迹的第一步,保存后继续迭代,根据model估计动作得到整个轨迹,依旧只执行一步(2是轨迹全部执行)
      4. 算法四:最终算法(结合了policy learning 和model learning 和optimal learning)(此时才是得到了基于环境模型的策略函数优化)
        1. 流程:
          1. 第一步同样是得到轨迹
          2. Loop
            1. 学习得到环境模型(model learning)
            2. 对环境模型进行反向传播更新参数,优化我们想得到的policy
            3. 通过我们2中产生的policy进一步产生新的data放入data set中
          3. 补充:黑盒白盒模型
            1. 黑盒模型:
              1. 不关心奖励函数和状态转移函数的计算方法
              2. 训练模型的目的只是用于采样数据
            2. 白盒模型:
              1. 环境模型的函数表示已知
              2. 可以通过概率密度和梯度两种信息进行学习
              3. 同样可以用于采集数据
        2. 参数化模型(dynamics使用什么模型来拟合)(也就是环境模型用什么来拟合)
          1. global model(每个状态都用同一个模型):
            1. 直接使用一个大型神经网络拟合
            2. 优势:本身更具有表现力,可以使用大量数据进行拟合
            3. 缺点:需要大量数据,数据少的话无法达到预期效果
          2. local model:(现在多用这个梯度)
            1. 使用随时间变化(time-varying)的linear-Gaussian dynamics(随不同状态有不同模型)
            2. 优势:数据有效性高
            3. 缺点:数据集大时非常缓慢,且会有很多个model(每个点都需要一个local model)
            4. 可以简单定义为

              1. 状态转移概率本身是高斯分布
              2. 环境模型f可以定义为线性动态系统(linear dynamic system)
              3. 对其求梯度可以得到local gradient
              4. 可以直接估计参数At和Bt,得到参数后可以采样得到下一状态
            5. 对local model进行拟合
              1. The probabilistic approximator model的好处是它会把它不确定的区域显示出来,最右边这个图我们可以看到有些区域是有观测的,区域不确定性是为0的;
              2. 对于灰色区域并没有得到观测点,不确定性是非常高的。
                后面一部分得到的观测点是比较密集的,所以不确定性是比较低的。
              3. 这样也是time-varying linear-Gaussian的好处,可以对不确定性进行建模。
              4. 此处借鉴了博主Wwwilling的原创文章,原文链接:https://blog.csdn.net/qq_43058281/article/details/114646283

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值