强化学习方法的分类总结

  |  

摘要: 无模型方法总结,神经网络的引入

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


各种主流的无模型方法

之前我们系统学习了通过自己行动获得经验来指定行动计划的无模型方法

在利用经验时,需要注意以下 3 点

  1. 平衡经验的积累与利用
  2. 根据实际奖励还是预测来修正计划
  3. 用经验来更新价值近似还是策略

第一点解决的是经验的积累与利用的折中问题,Epsilon 贪心算法是一种常见方法,我们在文章 经验的积累与利用-Epsilon贪心 中进行了讨论。

第二点解决的是经验如何计算的问题,TD 误差是一种常见的计算经验的方法。每次回合结束时计算差异的方法为蒙特卡洛方法,每次行动之后计算差异的方法称为 TD 方法。我们在文章 时序差分与蒙特卡洛方法, Q学习 中进行了讨论。

第三点解决的是当利用经验时,是用于更新价值近似还是更新策略的问题。相应地,采取行动的基准分为 Off-policy 和 On-policy。根据更新对象估计价值时采取行动的基准,Off-policy 的代表是 Q 学习,On-policy 的代表是 SARSA。我们在文章 经验用于更新价值还是更新策略 — Q学习与SARSA 中进行了讨论。

更新价值近似和更新策略是可以组合使用的,这衍生出了另一种学习的方法 — Actor Critic 方法。我们在文章 组合使用基于价值和基于策略 — Actor Critic 学习模式 中进行了讨论。

综上,我们可以将强化学习的方法进行分类,大致如下

表格中的前四个: Q 学习、蒙特卡洛方法、SARSA、Actor Critic 此前我们都学习过并实现了代码模板。后三个学习方法此前并没有研究过,下面简要介绍一下。

  • 蒙特卡洛控制使用蒙特卡洛方法进行策略迭代的方法,其中 Off-policy 的蒙特卡洛控制总是选择价值最大的行动来修正策略、On-policy 则以非零概率选择所有行动。
  • Off-policy Actor Critic 是以 Actor Critic 为框架来学习 Off-policy 的单一行动选择的方法。这对于需要输出单一值的连续值的控制来说是非常重要的方法。(参考 2004 年的经典论文《Intrinsically Motivated Reinforcement Learning》)。通过深度学习进行连续值控制的 DDPG 方法是以 Off-policy Actor Critic 为基础的。

表格中大致覆盖了强化学习的主要方法,目前提出的(截至2021年)各种方法也是基于这些方法的,例如:

  • 以与人类匹敌的精度玩游戏的 Deep Q-Network 是基于 Q 学习
  • A2C, A3C 是以 Actor Critic 为基础的。

Q[s][a] 的问题与神经网络的引入

回顾前面的各种方法的原理和代码模板,我们发现其中的一个共同要点是计算 Q 值,而实现方式都是以 Q[s][a] 的方式保存各种状态下各种行动的价值。

当状态和行动增加,这种方式变得不可行;此外对于连续值的状态和行动也无法用 Q[s][a] 的方式实现 Q 值的计算。

通过含参数的函数来计算 Q 值是一种解决方式。这种方式不记录所有状态下所有行动的价值,而是用数学式和参数来表达状态、行动与行动价值的关系。

用神经网络作为“含有参数的函数” 的方法就是深度强化学习,这种深度强化学习方法的开山之作是《Playing Atari with Deep Reinforcement Learning》也就是提出 DQN 的文章。Nature 的一篇文章《Human-level control through deep reinforcement learning》对 DQN 的改进也比较经典。


Share