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

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

第五章:策略优化基础

主要内容:

  1. 基于策略优化的强化学习
  2. 常见策略优化算法:Policy Gradient
  3. 存在问题及解决办法
  4. Actor-critic

一、基于策略函数的强化学习

  1. 回顾
    1. 基于价值函数的RL:
      1. 得到Q函数,对Q函数进行优化,获得Q值极大的动作

      2. 实际上,更重要的是策略,基于价值函数的最终目的也是获得使价值函数最高的策略,属于隐式的学习策略函数 
    2. 对比:
      1. 基于价值函数的RL
        1. 学习价值函数
        2. 通过价值函数隐式学习策略
      2. 基于策略函数的RL
        1. 不学习价值函数(即不关注某个状态的价值)
        2. 直接学习策略函数
      3. Actor-Critic 既学习价值函数又学习策略

         
  2. 基于策略函数的优化
    1. 优势:
      1. 强化学习中基于策略函数进行优化会使得优化更容易
      2. 无论数据多少都可以得到一个策略函数,数据越多效果越好(而在价值函数中,为了完成对Qtable的估计,是需要有很多数据的)
      3. 策略梯度方法在高维空间更有效(相对于高维动作空间,value只有单值,过于稀疏,而policy是向量)
      4. 策略梯度方法输出是概率(随机策略)(stochastic policy)(概率的优势会在之后提到)
    2. 缺点:
      1. 经常得到局部最优解,而不是全局最优解(因为建模时用的不是最优函数)
      2. 方差较大,导致结果不够稳定
    3. 分类:

      1. Determinstic policy:输出是一个确定的行为

      2. Stochastic policy:输出是各个行为的概率,执行时通过概率对行为进行采样

      3. 在某些场景中确定策略更容易输,随机策略才是最佳策略(优势之一)​​​​​​​

    4. 优化方法
      1. 优化策略实际优化的客观函数:π_θ(s,a)
      2. 如何衡量策略π_θ的价值?
        1. 在可结束回合中:取得开始的价值

        2. 在连续环境中
          1. 使用平均价值:

          2. 每一步获得的平均奖励

          3. 其中d是指当马尔可夫链到达稳态后,每个状态出现的概率 
        3. 从轨迹τ的角度来说(MC采样方法)
          1. 策略价值为:

          2. 此时,基于策略函数的RL的目的就是找到最优θ(实现极大化奖励)

          3. 即,基于策略函数的RL的重点在于优化参数θ使其可以最大化函数J(θ)
          4. 最大化实现方法:
            1. 函数可微:梯度上升(gradient ascend)
            2. 函数不可微,或微分难以得到: 一些无需微分的黑箱优化方法
              1. Cross-entropy method(CEM)
              2. Hill climbing
              3. Evolution algorithm 
      3. Cross-Entropy Method
        1. 是一种进化策略方法,核心是参数优化的过程
        2. 是一种基于参数扰动的搜索算法,给参数合理扰动(变体),在扰动中搜索和选择较好的集合,利用交叉熵指导更新v,使扰动方向越趋近于目标优化方向
        3. 是免梯度方法,从进化角度解决优化问题

          1. 采样,存在关于参数θ的分布,采样后得到多组θ
          2. 该分布可由初始化得到
          3. 6.对每个θ使其与环境交互,存储结果
          4. 8.极大似然优化更新参数,排序后取前10%对应的参数
          5. 迭代对选取参数进行优化
          6. 有时候CEM方法比可以微分优化的效果都好(在有些环境中)
          7. 周老师给出的代码:https://github.com/cuhkrlcourse/RLexample/blob/master/my_learning_agent.py
      4. Finite Difference
        1. 无法计算梯度,利用一种近似方法求梯度

        2. 在每个维度增加一个很小的随机扰动,用来近似梯度,用近似梯度进行优化
        3. 该方法效率较低且存在噪声,但对任何policy都是有效的
        4. 其他查询到的知识:有限差分法FDM
          1. 用数值解逼近微分方程真实解的方法
          2. 将求解区域离散为差分网格
          3. 以有限个网格结点代替连续的求解域
          4. 用网格上的差商代替格点上的空间导数
          5. 整理后变为差分代替微分
      5. 可微分:策略梯度方法
        1. 计算梯度:
        2. 似然函数:(对概率取log)

        3. 得到score function:
        4. 策略函数形式:
          1. Softmax policy
          2. Gaussian policy
        5. 术语:
          1. MLE:最大似然估计
          2. LL:log likelihood 对数似然函数
          3. 通过MLE估计参数通常会采用LL作为目标函数,
            1. 如max_θlogp(x;θ)    记L(θ)=logp(x;θ)    
          4. 求解最优的最直接方法就是令其对参数的导数为0,
            1. 即dL(θ)/dθ=0
            2. 此时dL(θ)/dθ就是score function (目标函数求对数似然的一阶导数)
        6. Softmax policy

          1. 基于目前已知的动作的平均奖赏对探索和利用进行折中
          2. 每个动作平均奖赏相当,则被选概率也相当
          3. 若某个动作平均奖赏明显高于其他动作,被选取概率也更高
          4. τ趋近于0时算法趋于仅利用;趋于无穷大时算法趋于仅探索
          5. Q(i)记录当前动作完成后的平均奖赏
        7. Gaussian policy
          1. 对连续动作空间,动作选择是高斯分布函数,是很好的选择
          2. 对状态特征量进行加和、
          3. 方差可以参数化也可以是固定的
          4. 取策略时对连续空间进行采样
          5. 得到对应的score function

二:常见策略优化算法:Policy Gradient

  1. 策略优化经典算法:Policy Gradient
    1. 对于只走一步的MDP
      1. 采样起始状态s
      2. 一步后得到奖励r=R(s,a)
      3. 得到客观函数:

      4. 求梯度:

    2. 对于多步MDP(策略函数会与环境进行交互,实际上会产生一个轨迹)
      1. 首先,经过一次回合后可以得到轨迹τ
      2. 由此可以表示出某个轨迹τ发生的概率

      3. 接下来表示轨迹τ的奖励

        1. 仅完成单次回合:

        2. 事实上,我们会采样多次回合,我们要调整参数θ使奖励R(τ)越大越好,R(τ)是随机变量,计算它的期望值

        3. 推导过程:
          1. 此时,我们的目的是:
          2. 因为希望奖励越大越好,所以使用梯度上升来更新参数,用来最大化奖励
          3. 该式子等同于期望值:(好处就是log连乘变连加)
          4. 使用采样估计期望值:(一般期望算不出来常用MC)
          5. 此时对轨迹概率进行拆分:(log连乘变连加)(无用量求导后消去)
          6. 所以梯度式进一步改变为:
          7. 书上的表达式为:
          8. 此时就得到了score function
          9. 利用score function对参数进行更新 
          10. 一般策略梯度采样数据只用一次,利用数据更新参数后,丢掉数据,接着重新采样再去更新参数
  2. 对比(分类问题和强化学习)(estimator)

    1. 解决分类问题时,目标函数就是需要极大化或极小化的对象;
    2. 强化学习和分类问题的唯一不同是在损失前面乘以权重,即整场游戏的总奖励(而不是单步奖励)(加权后的极大似然估计,尽量采样到可以达到更高奖励里去)

三、存在问题及解决方法

  1. 存在问题:此时的policy gradient 是基于MC采样方法得到的,事实上该方法虽然无偏,但会导致噪声较大,方差较大
    1. 当前公式:

  2. 解决方法:如何降低方差使其更稳定
    1. 利用时序上的因果关系,去掉不必要的项
    2. 包含一个baseline,减小R的方差
  3. 方法一:时序因果关系
    1. 原函数:
    2. 此时,对于在状态s_t下发生的所有动作a_t来说,它们乘以的权重都是第t次游戏的所有奖励
    3. 这种加权方式很明显存在问题,执行该动作之前得到的奖励不是该动作的贡献
    4. 根据折扣回报的思想,我们可以进一步优化梯度:
    5. 原梯度:
    6. 时序因果性:t’的策略不会影响t’之前的奖励
  4. REINFORCE算法

    1. 基于MC policy gradient的算法
    2. 回合更新方式,先获得每个步骤的奖励,再计算每个步骤的未来总奖励G
    3. 利用G对参数θ进行更新
    4. 由于:
    5. 代码计算中,实际是从后往前推,先算T时刻G,一直算到G1
  5. 方法二:使用Baseline
    1. 原函数:
    2. 当所有动作奖励均为正时,某动作未采样到导致其概率下降(相对下降)
    3. 引入baseline函数,使奖励有正有负:(b的要求在于与动作a无关)
    4. 这样做即使未采样到,正向动作也不会概率下降
    5. 一种baseline函数是我们所期望结果,对于本章就是对实际得到一系列奖励的平均值(因为期望不好算所以变成了MC采样进行计算)
    6. 通过推导可知
      1. 引入baseline不会改变policy gradient的值(因为减b的部分恒等于0)
      2. 不会改变期望但会使方差更小(为什么),从而使梯度更稳定,即强化学习训练也更稳定
    7. baseline同时可以用参数w进行拟合,优化过程中同时优化参数θ和w
    8. 优势函数:G-b 

四、引入Critic (Actor-critic)  

  1. 对Gt的替代
    1. 即得到Actor-Critic算法
    2. 书中,将优势函数即记为,用网络估计A
    3. 该网路称为评论员critic
  2. Actor-Critic算法(将value function和policy function结合)
    1. 对critic: 功能:进行策略评估,当前策略可能获得价值
    2. 估计critic参数w的方法(重用策略评估方法)
      1. MC策略评估
      2. TD learning
      3. Least-squares 策略评估
      4. 这些就是基于价值函数的强化学习方法
  3. QAC方法
  4. AC函数拟合
    1. 方法一:对策略函数和价值函数分别拟合
    2. 方法二:将两个拟合函数组合起来,分享特征提取部分
    3. 通过baseline减少AC的方差
  5. policy gradient的应用
    1. 克服不可微分的计算成分
    2. policy gradient本身是基于MC采样的算法,用采样的方法替代不可微分的方法
  6. 两种流派
    1. 基于价值函数的RL
      1. 使用动态规划和bootstraping等方法对价值函数进行优化
      2. 通过Q函数获取最佳策略,更关注价值函数的估计
      3. Deep Q-learning
    2. 基于策略函数的RL
      1. 基于策略优化,机器学习与深度学习等
    3. 最终都靠近Actor-Critic方法
    4. 具体取决于自身的应用方面

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度强化学习是结合了深度学习强化学习的一种算法方法,它的发展历史可以追溯到强化学习和深度学习各自的起源。 强化学习是一种机器学习方法,旨在通过智能体与环境的交互来学习最优的行为策略。其基本思想是通过试错和奖励机制来引导智能体的学习过程。强化学习的发展历史可以追溯到20世纪50年代的动态规划方法,随后逐渐发展出了值函数和策略函数的方法,如Q-learning和SARSA等。然而,传统的强化学习方法在处理高维、复杂的问题时面临着维度灾难和计算复杂性的挑战。 深度学习是一种基于神经网络的机器学习方法,通过多层次的神经网络模型来学习数据的表示和特征提取。深度学习在图像识别、语音识别等领域取得了巨大成功。然而,传统的深度学习方法在处理序列决策问题时存在困难,因为它们缺乏对时间序列和延迟奖励的建模能力。 深度强化学习的发展可以追溯到2013年,当时DeepMind团队提出了一种基于深度神经网络的强化学习算法——深度Q网络(DQN)。DQN通过将强化学习和深度学习相结合,成功地解决了一些复杂的游戏问题。随后,深度强化学习得到了广泛的关注和研究。 在此基础上,深度强化学习的发展又涌现出了一系列的算法,如策略梯度方法、Actor-Critic方法、Proximal Policy Optimization(PPO)等。这些算法通过引入深度神经网络来近似值函数或策略函数,进一步提高了深度强化学习在处理复杂问题上的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值