图解强化学习(第2部分):解决方法
直觉式强化学习系列
RL解决方案的温和概述,以及如何对其进行分类。 朴素英语中贝尔曼方程式的重要内容
这是我关于强化学习(RL)的系列文章中的第二篇。 现在我们了解了RL问题是什么,让我们看一下解决问题的方法。
这是该系列中以前和之后文章的快速摘要。我的目标始终是不仅要理解某件事情的工作原理,而且要理解为什么它如此工作。
· 基本概念和术语简介(什么是RL问题,以及如何使用Markov决策过程中的技术和诸如收益,价值和政策等概念将RL问题解决框架应用于该框架)
· 解决方案方法—本文(概述流行的RL解决方案,并根据这些解决方案之间的关系对其进行分类。Bellman方程式的重要内容是所有RL算法的基础。)
· 无模型算法(使用迭代算法逐步改善预测的基于价值和基于策略的解决方案的相似性和差异。利用,探索和ε贪婪策略。)
· Q学习(对此算法进行深入分析,这是随后的深度学习方法的基础。了解为什么此算法收敛到最佳值的直觉。)
· Deep Q Networks(我们的第一个深度学习算法。分步逐步讲解它的工作原理以及做出这些架构选择的原因。)
· 策略梯度(我们的第一个基于策略的深度学习算法。)
· Actor-Critic(复杂的深度学习算法,结合了Deep Q网络和策略梯度的优点。)
· 惊喜主题(敬请期待!)
RL解决方案类别
'解决'强化学习问题基本上等于找到最佳策略(或最佳价值)。有很多算法,我们可以将其分为不同的类别。
基于模型与无模型
从广义上讲,解决方案是:
· 基于模型(又称计划)
· 无模型(又名强化学习)
当环境的内部操作已知时,将使用基于模型的方法。换句话说,当从某个当前状态执行某些操作时,我们可以可靠地说出环境将输出什么下一状态和奖励。

> Model-based: Internal operation of the environment is known (Image by Author)
当环境非常复杂且内部动态未知时,可以使用无模型方法。 他们将环境视为黑匣子。

> Model-free: Environment is a black box (Image by Author)
预测与控制
预测和控制之间的另一个高级区别。
对于预测问题,我们将策略作为输入,目标是输出相应的Value函数。这可以是任何策略,不一定是最佳策略。

> Prediction vs Control problems (Image by Author)
对于控制问题,不提供任何输入,目标是探索策略空间并找到最佳策略。
大多数实际问题是控制问题,因为我们的目标是找到最佳策略。
分类流行的RL算法
最常见的RL算法可以分类如下:

> Taxonomy of well-known RL Solutions (Image by Author)
现实世界中最有趣的RL问题是无模型控制问题。 因此,除了在下面简要介绍基于模型的解决方案之外,我们将不在本系列中进一步探讨基于模型的解决方案。 我们从此处开始讨论的所有内容仅与无模型控制解决方案有关。
基于模型的方法
因为它们可以产生每种状态和动作交互的确切结果,所以基于模型的方法可以分析地找到解决方案,而无需与环境进行实际交互。
例如,使用基于模型的方法下棋,您将对下棋的所有规则和策略进行编程。 另一方面,无模型算法对国际象棋游戏本身一无所知。 它唯一的知识就是一般信息,例如状态如何表示以及可能采取的行动。 它仅观察抽象的棋子,观察其在尝试某些动作时所获得的奖励。
大多数实际问题都是无模型的,因为环境通常太复杂而无法建立模型。
无模型方法
相比之下,无模型解决方案只能通过实际与环境交互来观察环境的行为。
与环境互动
由于环境的内部操作对我们是不可见的,因此无模型算法如何观察环境的行为?
我们通过与之交互来了解其行为方式,一次动作。该算法充当代理,采取行动,观察下一个状态和奖励并重复。

> Model-free algorithms learn about the environment by interacting with it, one action at a time.
代理通过反复试验获得经验。它尝试执行步骤并收到正面或负面的反馈。这与人类将学到的几乎相同。
相互作用的轨迹
随着主体采取每个步骤,它遵循一条路径(即轨迹)。

> A trajectory of interactions (Image by Author)
代理的轨迹成为算法的'训练数据'。
Bellman方程是所有RL算法的基础
在进入用于解决RL问题的算法之前,我们需要一点数学来使这些概念更精确。
数学实际上是非常直观的-它全部基于一种简单的关系,即Bellman方程。
这种关系是所有RL算法的基础。 该方程式有几种形式,但是它们都基于相同的基本思想。 让我们逐步完成此过程以建立直觉。
从终端状态进行工作(使其更易于理解)
通过从一个状态采取行动达到最终状态来考虑奖励。

> Reward when reaching a terminal state (Image by Author)
从该状态获得的回报与采取该操作所获得的回报相同。 请记住,奖励是通过单个操作获得的,而回报是从该状态开始(直到剧集结束)获得的累计折扣奖励。

> (Image by Author)
现在考虑先前的状态S6。S6的回报是采取行动达到S7所获得的报酬,加上我们将从S7获得的任何折现回报。重要的是,我们不再需要了解S7之后采取的各个步骤的详细信息。

> (Image by Author)
Bellman 贝尔曼回报方程
通常,任何状态的收益都可以分解为两部分-采取行动获得下一个状态的立即奖励,再加上对所有后续步骤都遵循相同的政策,从该下一个状态获得的贴现收益。 这种递归关系称为Bellman方程。

> (Image by Author)
Bellman状态值方程
回报是单条路径的折扣奖励。 通过取许多路径上的收益平均值(即收益期望)来获得状态值。
因此,状态值可以类似地分解为两个部分-从下一个动作到达下一个状态的立即奖励,再加上遵循所有后续步骤的策略,该下一个状态的折现值。

> (Image by Author)
状态作用值的Bellman方程
同样,状态-动作值可以分解为两个部分-从该动作获得下一个状态的立即奖励,再加上遵循所有后续步骤的策略,该下一个状态的折现值。

> (Image by Author)
Bellman方程为何有用?
我们可以从Bellman方程中得出两个关键结论。
可以递归计算收益,而无需结束剧集的结尾
第一点是,为了计算Return,我们不必一直到情节的结尾。 情节可能很长(遍历非常昂贵),也可能永无休止。 相反,我们可以使用这种递归关系。
如果我们知道下一步的收益,那么我们可以背负这一点。我们只需采取一个步骤,观察奖励,然后重用后续的Return,而无需遍历整个情节。
我们可以使用估算值,而不是确切的值
第二点是有两种方法可以计算相同的事物:
· 一种是从当前状态返回。
· 第二个是第一步的奖励加上下一状态的回报。
为什么这么重要?
由于从某个状态(到情节结束)衡量实际回报非常昂贵,因此我们将使用估算的回报。然后,我们以两种方式计算这些估计,并通过比较两个结果来检查我们的估计是否正确。
由于这些是估计值,而不是精确的测量值,因此这两个计算的结果可能不相等。 差异告诉我们估算中产生了多少'错误'。 这有助于我们通过减少估算值的方式修改估算值,从而改善估算值。
坚持这两个想法,因为所有RL算法都将利用它们。
结论
既然我们对RL问题有一个整体的了解,并且可以使用广泛的方法来解决这些问题,那么我们准备更深入地研究用于解决它们的技术。 由于现实世界中的问题通常是通过无模型方法解决的,因此,我们将重点关注这些问题。 它们将是下一篇文章的主题。 让我们继续学习!
(本文由闻数起舞翻译自Chris Lovejoy的文章《Reinforcement Learning Made Simple (Part 2): Solution Approaches》,转载请注明出处,原文链接:https://towardsdatascience.com/reinforcement-learning-made-simple-part-2-solution-approaches-7e37cbf2334e)
