强化学习常用算法比较

目录

  • Dynamic Programming
  • Monte Carlo Methods
  • Temporal-Difference Learning
  • n-step Bootstrapping
  • DQN
    • 背景
    • 改进

Dynamic Programming

  • 思路:
    利用Bellman方程迭代,每次迭代过程中,用所有的状态s的第k次迭代得到的vk(s’)来计算第k+1次的vk+1(s)的值。经过这种方法的反复迭代,最终可以收敛到最优的v∗(s)。
    Bellman方程:
    强化学习常用算法比较_第1张图片
  • 优势: 更新无需等待最后的结果。
  • 缺点: 环境的完整知识;维数灾难。

Monte Carlo Methods

  • 思路:
    通过经验(状态、动作和奖励的样本序列)求解最优策略。比如在初始状态s,遵循策略π,最终获得了总回报R,这就是一个样本。如果我们有许多这样的样本,就可以估计在状态s下,遵循策略π的期望回报。
  • 优势: 蒙特卡罗方法不需要对环境的完整知识(区别于DP)。仅仅需要经验(状态、动作和奖励的样本序列)就可以求解最优策略,这些经验可以在线获得或者根据某种模拟机制获得。
  • 缺点:

    蒙特卡罗方法必须等到episode task的末尾才能确定到V(St)的增量(这时Gt才知道),只能用于episode tasks。

Temporal-Difference Learning

  • 思路:
    TD学习是蒙特卡罗思想和动态规划思想的结合,与蒙特卡罗方法一样,TD方法可以直接从原始经验中学习,而不需要环境动力学模型。与DP一样,TD方法更新估算无需等待最终结果。
  • 优势: TD方法比DP方法有一个优点,即它们不需要环境模型、回报模型和下一状态概率分布模型。TD方法比蒙特卡罗方法的一个最明显的优点是,它们自然地以在线、完全增量的方式实现,不局限于episode task,可以用于连续的任务。
    但是在收敛速度上,TD方法与MC方法哪个好并没有结论。
  • 缺点: 大规模MDP或连续空间MDP,TD是很难保证在每一个时间步长更新,因此,很难保证及时性。

n-step Bootstrapping

  • 思路:
    n步TD方法,介于MC和一步TD之间的方法。蒙特卡罗方法对每个状态执行更新,基于从该状态到事件结束的整个观察奖励序列。一步TD方法的更新只基于下一个奖励。N步TD方法进行折中:多于一个奖励,但是少于全部奖励。
  • 优势: 性能上比MC和TD(0)优秀。
  • 缺点: 计算相比MC和TD(0)更复杂,和TD(0)相比,需要更大的存储空间用来存储state,action和reward。

DQN

背景

为什么要引入深度学习?
传统RL局限于低维问题,存在复杂性的问题:存储复杂性和计算复杂性,因此直接从如视觉、语音这样的高维感官输入学习控制智能体是个难题。DL 最重要的特性是,DNN可以自动学习高维数据(如图像、文本和音频等)的低维特征表示。DL使RL 能够扩展到高维状态空间和高维动作空间设定下的决策问题,并利用 DL 提取高维特征的能力,使DRL模型只用原始输入而不用人工特征来生成输出,从而实现端到端的学习。

改进

  • 经验回放
  • 目标网络

使得训练过程更加稳定。
强化学习常用算法比较_第2张图片

  • 经验回放
    解决两个问题:
    • 避免遗忘之前的经验:创建一个“回放缓存”
    • 减少经验间的相关性:训练时采样历史经验样本
  • 目标网络
    深度Q网络除了使用深度神经网络逼近状态动作值函数之外,还单独使用另一个深度神经网络来产生目标Q值。在算法中使用目标值网络后,一段时间内的目标Q值是保持恒定的,一定程度上降低了当前Q值和优化目标值之间的相关性,从而提高了算法的稳定性和性能。

你可能感兴趣的:(强化学习)