强化学习(Reinforcement Learning, RL) / 增强学习

  • 一个智能体从与环境的交互中不断学习以完成特定目标(比如取得最大奖励值)
  • 强化学习就是智能体不断与环境进行交互,并根据经验调整其策略来最大化其长远的所有奖励的累积值

image.png

  • 强化学习的目标:学习到一个策略 第 14 章 深度强化学习 - 图2 来最大化期望回报
  • 强化学习的关键问题:贡献度分配问题(与深度学习类似),每一个动作并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性
    • 贡献度分配问题:即一个系统中不同的组件对最终系统输出结果的贡献或影响
  • 强化学习和监督学习的区别:
    • 强化学习不需要给出“正确”策略作为监督学习,只需要给出策略的(延迟)回报,并通过调整策略来取得最大化的期望回报
  • 强化学习的例子:
    • 下棋这类人物,虽然很难知道每一步的“正确”动作,但是其最后的结果(即输赢)却很容易判断。因此,如果可以通过大量的模拟数据,通过最后的结果(奖励)来倒推每一步棋的好坏,从而学习出“最佳”的下棋策略,这就是强化学习

第 14 章 深度强化学习 - 图3

14.1 强化学习问题

14.1.1 典型例子

  • 多臂赌博机问题
  • 悬崖行走问题

14.1.2 强化学习定义

第 14 章 深度强化学习 - 图4 强化学习的基本要素

强化学习的基本要素 定义
状态 s 对环境的描述,离散 or 连续,状态空间为 S
动作 a 对智能体行为的描述,离散 or 连续,动作空间为 A
策略 π(a|s) 智能体根据环境状态 s 来决定下一步动作 a 的函数
状态转移概率 p(s’|s,a) 智能体根据当前状态 s 做出一个动作 a 后,环境在下一时刻转变为状态 s’ 的概率
即时奖励 r(s,a,s’) 标量函数,智能体根据当前状态 s 做出动作 a 后,环境反馈给智能体一个奖励(也和下一时刻状态 s’ 有关)

策略 π(a|s):即智能体如何根据环境状态 s 来决定下一步的动作 a,通常可以分为:

  • 确定性策略:从状态空间 S 到动作空间 A 的映射函数 第 14 章 深度强化学习 - 图5
    • 采用确定性策略的智能体总是对同样的环境做出相同的动作,会导致其策略很容易被对手预测
  • 随机性策略:在给定环境状态 s 时,智能体选择某个动作 a 的概率分布 第 14 章 深度强化学习 - 图6
    • 强化学习一般选用随机性策略,其优点:
      • 在学习时可以通过引入一定随机性更好地探索环境
      • 随机性策略的动作具有多样性,这点在多个智能体博弈时也非常重要

14.1.3 马尔可夫决策过程 MDP

image.png
智能体与环境的交互序列:第 14 章 深度强化学习 - 图8
智能体与环境的交互可以看作一个马尔可夫决策过程 MDP第 14 章 深度强化学习 - 图9

  • 即下一时刻的状态 第 14 章 深度强化学习 - 图10 只取决于当前的状态 第 14 章 深度强化学习 - 图11 以及(额外的变量:)动作 第 14 章 深度强化学习 - 图12

image.png

马尔可夫决策过程 MDP:(给定策略 第 14 章 深度强化学习 - 图14

  • 轨迹第 14 章 深度强化学习 - 图15
  • 轨迹 第 14 章 深度强化学习 - 图16 的概率:第 14 章 深度强化学习 - 图17

14.1.4 强化学习的目标函数

14.1.4.1 总回报

总回报 Return:给定策略 第 14 章 深度强化学习 - 图18,智能体和环境一次交互过程的轨迹 第 14 章 深度强化学习 - 图19 所收到的累积奖励为总回报

  • 第 14 章 深度强化学习 - 图20

两种强化学习任务:

  • 回合式任务:环境中有一个 or 多个特殊的终止状态,到达终止状态,则一轮交互(回合/试验)结束
    • eg. 下棋、游戏等一般的强化学习任务
  • 持续式任务:环境中没有终止状态(eg. 终身学习的机器人)
    • 折扣回报 第 14 章 深度强化学习 - 图21
      • 引入折扣率 第 14 章 深度强化学习 - 图22 来降低远期回报的权重,避免由于没有终止状态导致总回报无穷大
      • 折扣率 第 14 章 深度强化学习 - 图23
        • 第 14 章 深度强化学习 - 图24 接近于 0,智能体更在意短期汇报
        • 第 14 章 深度强化学习 - 图25 接近于 1,长期回报变得更重要

14.1.4.2 目标函数

强化学习的目标:学习到一个策略 第 14 章 深度强化学习 - 图26最大化期望回报 ,即希望智能体执行一系列的动作来获得尽可能多的平均回报

  • 目标函数 第 14 章 深度强化学习 - 图27

14.1.5 深度强化学习

深度强化学习:将强化学习和深度学习结合在一起,用强化学习来定义问题和优化目标,用深度学习来解决状态表示、策略表示等问题

  • 两种不同的集合强化学习和深度学习的方式:分别用深度神经网络来建模强化学习中的值函数策略,然后用误差反向传播算法来优化目标函数

14.2 基于值函数的学习方法

14.2.1 值函数

值函数:对策略 第 14 章 深度强化学习 - 图28 的期望回报的评估 第 14 章 深度强化学习 - 图29

14.2.1.1 状态值函数 V

一个策略 第 14 章 深度强化学习 - 图30 的期望回报可以分解为 第 14 章 深度强化学习 - 图31

  • 状态值函数 第 14 章 深度强化学习 - 图32
    • 表示从状态 s 开始,执行策略 第 14 章 深度强化学习 - 图33 得到的期望总回报
  • 贝尔曼方程: 第 14 章 深度强化学习 - 图34
    • 表示当前状态的值函数可以通过下个状态的值函数来计算

14.2.1.2 状态-动作值函数(Q 函数)

  • 状态-动作值函数 / Q 函数 第 14 章 深度强化学习 - 图35
    • 即上面状态值函数的贝尔曼方程的第二个期望,指初始状态为 s 并进行动作 a,然后执行策略 第 14 章 深度强化学习 - 图36 得到的期望总回报
  • Q 函数的贝尔曼方程第 14 章 深度强化学习 - 图37

14.2.1.3 值函数的作用

值函数的作用对策略 第 14 章 深度强化学习 - 图38 (的期望回报)的评估,因此可以根据值函数来优化策略

  • 最优策略:存在一个最优的策略 第 14 章 深度强化学习 - 图39,其在所有状态上的期望回报最大,即:
    • 第 14 章 深度强化学习 - 图40
    • 难以实现
  • 策略改进:
    • 值函数可以看作对策略 第 14 章 深度强化学习 - 图41 的评估
    • 若在状态 s,有一个动作 第 14 章 深度强化学习 - 图42 使得 第 14 章 深度强化学习 - 图43,说明执行动作 第 14 章 深度强化学习 - 图44 的回报比当前的策略 第 14 章 深度强化学习 - 图45 要高,就可以调整参数使得策略中动作 第 14 章 深度强化学习 - 图46 的概率 第 14 章 深度强化学习 - 图47 增加
    • 学习最优策略的方法:先随机初始化一个策略,计算该策略的值函数,并根据值函数来设置新的策略,然后一直反复迭代直到收敛


第 14 章 深度强化学习 - 图48

14.2.2 动态规划算法(基于模型的强化学习)

基于模型的强化学习:模型指马尔可夫决策过程 MDP,即 MDP 的状态转移概率 第 14 章 深度强化学习 - 图49 和奖励 第 14 章 深度强化学习 - 图50 已知,则可以通过贝尔曼方程迭代计算值函数

  • 动态规划算法:模型已知时,可以使用动态规划的方法来计算
    • 策略迭代算法
    • 值迭代算法
  • 动态规划方法的两点限制:
    • 要求模型已知,即要给出马尔可夫决策过程的状态转移概率 第 14 章 深度强化学习 - 图51 和奖励函数 第 14 章 深度强化学习 - 图52 ,实际中这个要求很难满足
    • 效率问题:当状态数量较多时,算法效率比较低
      • 一种有效的改进方法是通过一个函数(eg. 神经网络)来近似计算值函数,以减少复杂度,并提高泛化能力,参见深度 Q 网络

14.2.2.1 策略迭代算法

策略迭代每次迭代分为两步:

  • 策略评估:计算当前策略下每个状态的值函数
    • 由贝尔曼方程迭代计算状态值函数 第 14 章 深度强化学习 - 图53
  • 策略改进:根据值函数来更新策略

image.png

14.2.2.2 值迭代算法

值迭代:合并策略评估和策略改进两个过程,直接计算出最优策略

  • 直接优化贝尔曼最优方程,迭代计算最优值函数
    • 值函数的最优贝尔曼方程 第 14 章 深度强化学习 - 图55

image.png

14.2.3 蒙特卡罗采样方法(模型无关的强化学习)

模型无关的强化学习:基于采样的学习算法。马尔可夫决策过程的状态转移概率 第 14 章 深度强化学习 - 图57 和奖励 第 14 章 深度强化学习 - 图58 未知,因此要通过采样来求解马尔可夫决策过程的最优策略

蒙特卡罗方法的策略学习过程:

  • 通过采样的方式来计算 Q 函数 第 14 章 深度强化学习 - 图59
    • 第 14 章 深度强化学习 - 图60
  • 在近似估计出 Q 函数 第 14 章 深度强化学习 - 图61 后,就可以进行策略改进
  • 然后在新的策略下重新通过采样来估计 Q 函数,并不断重复,直至收敛

第 14 章 深度强化学习 - 图62贪心法

  • 利用和探索:对当前策略的利用,对环境的探索以找到更好的策略
  • 对于一个确定性策略 第 14 章 深度强化学习 - 图63,其对应的 第 14 章 深度强化学习 - 图64贪心法策略为:第 14 章 深度强化学习 - 图65
  • 这样 第 14 章 深度强化学习 - 图66贪心法就将一个仅利用的策略转为带探索的策略

14.2.4 时序差分学习方法

蒙塔卡罗方法:一般需要拿到完整的轨迹,才能对策略进行评估并更新模型,因此效率较低
时序差分学习方法:结合了动态规划和蒙特卡罗方法

  • 引入动态规划算法来提高蒙特卡罗方法的效率。模拟一段轨迹,每行动一步 or 几步,就利用贝尔曼方程来评估行动前状态的价值

image.png

14.2.4.1 SARSA 算法(同策略)

image.png

14.2.4.2 Q 学习(异策略)

Q 学习:与 SARSA 算法不同,Q 学习算法不通过 第 14 章 深度强化学习 - 图69 来选下一步的动作 𝑎’,而是直接选最优的 Q函 数,因此更新后的 Q 函数是关于策略 𝜋 的,而不是策略 第 14 章 深度强化学习 - 图70 的,即是异策略的
image.png

14.2.5 深度 Q 网络(基于值函数的深度强化学习)

值函数近似第 14 章 深度强化学习 - 图72

  • 为了在连续的状态和动作空间中计算值函数 第 14 章 深度强化学习 - 图73,可以用一个函数 第 14 章 深度强化学习 - 图74 (可以是神经网络)来表示近似计算

目标函数 第 14 章 深度强化学习 - 图75

  • s’, a’ 是下一时刻的状态向量和动作向量
  • 存在两个问题:
    • 目标不稳定,参数学习的目标依赖于参数本身
    • 样本之间有很强的相关性

深度 Q 网络

  • 目标网络冻结:在一个时间段内固定目标中的参数,来稳定学习目标
  • 经验回放:构建一个经验池(由智能体最近的经历组成的数据集)来去除数据相关性
    • 训练时,随机从经验池中抽取样本来代替当前的样本用来进行训练,这样就打破了和相邻训练样本的相似性,避免模型陷入局部最优
    • 经验回放在一定程度上类似于监督学习,先收集样本,然后在这些样本上进行训练

image.png

14.3 基于策略函数的学习方法

策略搜索:在策略空间中直接搜索来得到最佳策略,本质上一个优化问题

  • 与基于值函数的方法的区别:策略搜索可以不需要值函数,直接优化策略 第 14 章 深度强化学习 - 图77 基于策略函数的深度强化学习

  • 可以直接用深度神经网络来表示一个参数化的从状态空间到动作空间的映射函数:第 14 章 深度强化学习 - 图78

  • 最优的策略是使得在每个状态的总回报最大的策略,因此策略搜索的目标函数
    • 第 14 章 深度强化学习 - 图79
  • 策略搜索:通过梯度上升的方法来优化参数 θ 使得目标函数 J(θ) 最大
    • 参数 θ 优化的方向是使得总回报 G(τ) 越大的轨迹 τ 的概率 第 14 章 深度强化学习 - 图80 也越大
  • 策略梯度 第 14 章 深度强化学习 - 图81
    • 第 14 章 深度强化学习 - 图82 是从时刻 t 作为起始时刻收到的总回报

14.3.1 REINFORCE 算法

REINFORCE 算法:通过采样的方法(通过随机游走的方法采集多个轨迹)来近似策略梯度中的期望

  • 第 14 章 深度强化学习 - 图83
  • 结合随机梯度上升算法,每次采集一条轨迹,计算每个时刻的梯度并更新参数

image.png

  • 主要缺点:不同路径之间的方差很大,导致训练不稳定,这是在高维空间中使用蒙特卡罗采样方法的通病

14.3.2 带基准线的 REINFORCE 算法

减少方差的方法

  • 引入一个控制变量:假设要顾及函数 f 的期望,为了减少 f 的方差,引入一个已知期望的函数 g,令 第 14 章 深度强化学习 - 图85
    • 方差 第 14 章 深度强化学习 - 图86
      • 第 14 章 深度强化学习 - 图87 为函数 f 和 g 的相关性,相关性越高,则 第 14 章 深度强化学习 - 图88 的方差越小

带基准线的 REINFORCE 算法(引入基线):

  • 在每个时刻 t,其策略梯度为 第 14 章 深度强化学习 - 图89
  • 为了减小策略梯度的方差,引入一个和 第 14 章 深度强化学习 - 图90 无关的基准函数 第 14 章 深度强化学习 - 图91
    • 第 14 章 深度强化学习 - 图92
  • 第 14 章 深度强化学习 - 图93 的选择:
    • 为了可以有效地减小方差,第 14 章 深度强化学习 - 图94第 14 章 深度强化学习 - 图95 越相关越好,一个很自然的选择是令 第 14 章 深度强化学习 - 图96 为值函数 第 14 章 深度强化学习 - 图97
    • 值函数 第 14 章 深度强化学习 - 图98 是未知的,因此可以用一个可学习的函数 第 14 章 深度强化学习 - 图99 来近似值函数
      • 目标函数 第 14 章 深度强化学习 - 图100
    • 策略函数参数 t 的梯度 第 14 章 深度强化学习 - 图101

image.png

14.4 演员-评论员算法

演员-评论员算法:是一种结合策略梯度和时序差分学习的强化学习方法

  • 演员 actor:策略函数 第 14 章 深度强化学习 - 图103,即学习一个策略来得到尽量高的回报
  • 评论员 critic:值函数 ,对当前策略的值函数进行估计,即评估演员的好坏

借助于值函数,演员-评论员算法可以进行单步更新参数,不需要等到回合结束才进行更新

算法过程:

  • 开始训练时,演员随机表演,评论员随机打分
  • 每步更新中,分别进行策略函数 第 14 章 深度强化学习 - 图104 和值函数 第 14 章 深度强化学习 - 图105 的学习
    • 评论员调整打分标准:更新参数 第 14 章 深度强化学习 - 图106 使得值函数 第 14 章 深度强化学习 - 图107 接近于估计的真实回报 第 14 章 深度强化学习 - 图108,即 第 14 章 深度强化学习 - 图109
    • 演员调整自己的表演策略:将值函数 第 14 章 深度强化学习 - 图110 作为基线函数来更新参数 第 14 章 深度强化学习 - 图111,减少策略梯度的方差

image.png

14.5 总结和深入阅读

强化学习与监督学习的区别:

  • 强化学习的样本通过不断与环境进行交互产生,即试错学习;而监督学习的样本由人工收集并标注
  • 强化学习的反馈信息只有奖励,并且是延迟的,而监督学习需要明确的指导信息(每一个状态对应的动作)

强化学习算法:

  • 基于值函数的方法:在策略更新时可能会导致值函数的改变比较大,对收敛性有一定的影响
  • 基于策略函数的方法:在策略更新时更加平稳些,但因为策略函数的解空间比较大,难以进行充分的采样,导致方差比较大,并容易收敛到局部最优解
  • 演员-评论员算法:融合了以上两种方法,取长补短,有更好的收敛性

image.png

不同的强化学习算法的优化步骤都可以分为 3 步:

  • 执行策略,生成样本
  • 估计回报
  • 更新策略

image.png

深度强化学习:

  • 基于值函数的深度强化学习:深度 Q 网络
  • 同时使用策略网络和值网络来近似策略函数和值函数

习题

习题 14-1 让一个智能体通过强化学习来学习走迷宫,如果智能体走出迷宫,奖励为 +1,其他状态奖励为 0. 智能体的目标是最大化期望回报.当折扣率 𝛾 = 1 时, 智能体是否能学会走迷宫的技巧?如何改进?


习题 14-2 证明公式(14.25)


习题 14-3 证明公式(14.27)和公式(14.28)会收敛到最优解


习题 14-4 比较证明公式(14.21)和公式(14.38)的不同之处.


习题 14-5 分析SARSA算法和Q学习算法的不同


习题 14-6 证明公式(14.54)


习题 14-7 在演员-评论员算法和生成对抗网络中都有两个可学习的模型,其中一个模型用来评估另一个模型的质量.请分析演员-评论员算法和生成对抗网络在学习方式上的异同点