直觉式强化学习系列

直观的Q学习算法工作原理和可视指南

强化学习qlearning(图解强化学习第4部分)(1)

> Photo by Carlos Esteves on Unsplash

这是我关于强化学习(RL)的系列文章中的第四篇。 现在,我们对构成RL问题构成要素的概念以及用于解决它们的技术有了很好的理解。 现在,我们可以将它们组合在一起,以了解最流行的RL算法使用的完整解决方案。

在本文中,令人振奋的是,现在开始研究我们的第一个RL算法,并详细了解Q Learning! 您可以找到许多资源,逐步解释该算法的作用,但是我的这篇文章的目的是让人们直观地了解该算法为何收敛并为我们提供最佳值。

这是该系列中以前和之后文章的快速摘要。 我的目标始终是不仅要理解某件事情的工作原理,而且要理解为什么它如此工作。

· 基本概念和术语简介(什么是RL问题,以及如何使用Markov决策过程中的技术和诸如收益,价值和政策等概念将RL问题解决框架应用于该框架)

· 解决方案方法(流行的RL解决方案的概述,并根据这些解决方案之间的关系对其进行分类。Bellman方程式的重要内容是所有RL算法的基础。)

· 无模型算法(使用迭代算法逐步改善预测的基于价值和基于策略的解决方案的相似性和差异。利用,探索和ε贪婪策略。)

· Q学习-这篇文章(对该算法进行深入分析,这是后续深度学习方法的基础。了解为什么该算法收敛到最佳值的直觉。)

· Deep Q Networks(我们的第一个深度学习算法。分步逐步讲解它的工作原理以及做出这些架构选择的原因。)

· 策略梯度(我们的第一个基于策略的深度学习算法。)

· Actor-Critic(复杂的深度学习算法,结合了Deep Q网络和策略梯度的优点。)

· 惊喜主题(敬请期待!)

如果您还没有阅读较早的文章,特别是第二和第三篇文章,那么最好先阅读它们,因为本文建立在我们在此讨论的许多概念的基础上。

Q学习概述

Q学习是我们之前讨论的基于查找表的方法中最有趣的方法,因为它是Deep Q Learning的基础。

Q学习算法使用状态动作值(也称为Q值)的Q表。该Q表的每个状态都有一行,每个动作都有一列。每个单元格包含相应状态-动作对的估计Q值。

我们首先将所有Q值初始化为零。 随着代理与环境交互并获取反馈,算法会迭代地改善这些Q值,直到它们收敛到最佳Q值为止。 它使用Bellman方程更新它们。

我们如何构造Q表?

让我们以一个简单的游戏为例。考虑一个3x3的网格,玩家在起始方开始,并希望到达目标方作为最终目的地,在那里他们获得5分的奖励。有些方块是透明的,有些方块包含危险,分别有0点和-10点的奖励。在任何方块中,玩家都可以采取四种可能的动作来向左,向右,向上或向下移动。

强化学习qlearning(图解强化学习第4部分)(2)

> (Image by author)

由于玩家可以放置在网格的9个正方形中的任何一个中,因此此问题有9个状态。 它有4个动作。 因此,我们构造了一个9行4列的Q表。

现在,我们可以使用Q表查找任何状态操作对的Q值。 例如。 特定单元格中的值,例如(((2,2),Up),是状态(2,2)和动作" Up"的Q值(或State-Action值)。

强化学习qlearning(图解强化学习第4部分)(3)

> (Image by author)

我们首先将所有Q值初始化为0。

Q学习算法

如我们所见,Q学习通过学习每个状态动作对的最优Q值来找到最优策略。

让我们看一下Q学习算法的整体流程。 最初,代理会随机选择动作。 但是,当代理与环境交互时,它会根据所获得的奖励来了解哪种行动更好。 它利用这种经验逐步更新Q值。

此流程与上一篇文章中介绍的流程非常相似。 因此,我们将不再重复所有步骤的说明。

强化学习qlearning(图解强化学习第4部分)(4)

> (Image by author)

区别是Q学习算法的关键特征,它是如何更新其估计的。 第四步中用于进行更新的方程式是基于Bellman方程式的,但是如果仔细检查,它会使用我们之前研究的公式的微小变化。

让我们放大一下流程,并对其进行更详细的研究。

Q学习在每个时间步中使用两种不同的动作

让我们看一个例子来理解这一点。

在算法的步骤2中,代理使用ε贪心策略从当前状态(S1)中选择当前操作(a1)。这是传递给环境以执行并获得奖励(R1)和下一个状态(S2)形式的反馈的动作。

强化学习qlearning(图解强化学习第4部分)(5)

> (Image by author)

现在,对于第4步,该算法必须使用下一个状态的Q值,以便针对当前状态和所选操作更新其估算的Q值(Q1)。

这是Q学习算法使用其巧妙技巧的地方。下一个状态有多个动作,那么它使用哪个Q值?它使用来自具有最高Q值(Q4)的下一个状态的动作(a4)。重要的是要注意,它将此操作视为仅用于更新Q1的目标操作。当到达下一个时间步时,它不一定最终会从下一个状态开始执行。

强化学习qlearning(图解强化学习第4部分)(6)

> (Image by author)

现在,它已经确定了目标Q值,它使用更新公式使用奖励和目标Q值为当前Q值计算新值…

强化学习qlearning(图解强化学习第4部分)(7)

> (Image by author)

…并更新当前的Q值。

强化学习qlearning(图解强化学习第4部分)(8)

> (Image by author)

换句话说,涉及两个动作:

· 当前动作-环境中实际执行的,来自当前状态的动作,其Q值已更新。

· 目标动作-具有来自下一个状态的最高Q值,用于更新当前动作的Q值。

强化学习qlearning(图解强化学习第4部分)(9)

> (Image by author)

行动的双重性使Q学习变得独一无二。

· 我们可以探索并发现执行动作的新路径。

· 但是,当我们更新Q值估计以改进它们时,即使该操作可能未执行,我们也始终使用最佳Q值。

强化学习qlearning(图解强化学习第4部分)(10)

> (Image by author)

这听起来可能令人困惑,所以让我们继续下一个步骤,看看会发生什么。 现在,下一个状态已成为新的当前状态。

代理再次使用ε贪心策略来选择一个动作。如果最终探索而不是利用,那么它执行的动作(a2)将不同于上一个时间步中用于Q值更新的目标动作(a4)。

强化学习qlearning(图解强化学习第4部分)(11)

> (Image by author)

这被称为"非策略"学习,因为执行的动作与用于学习的目标动作不同。

Q表如何填充?

在游戏开始时,代理人并不知道哪个动作比其他任何动作都要好。 因此,我们首先为所有Q值提供任意估计,然后将Q表中的所有条目设置为0。

让我们看一个有关第一步中发生的情况的示例,以便我们可以直观地看到如何用实际值填充Q表。

强化学习qlearning(图解强化学习第4部分)(12)

> (Image by author)

然后,该算法选择一个ε贪婪动作,从环境中获取反馈,并使用公式更新Q值,如下所示。这个新的Q值反映了我们观察到的回报。

强化学习qlearning(图解强化学习第4部分)(13)

> (Image by author)

这样,Q表的一个单元已经从零值变为填充有来自环境的一些实际数据。

我们的目标是使Q值向其最佳值收敛。我们看到这些Q值填充了某些东西,但是它们是用随机值更新还是逐渐变得更准确?

为什么估算随着时间的推移变得更加准确? (第1部分)

如果您考虑一下,那么像Q Learning这样的算法根本无法收敛到最优值似乎是完全不可思议的。

您可以从任意估算开始,然后在每个时间步长上用其他估算更新这些估算。

那么,为什么最终可以给您更好的估计呢?

原因是在每个时间步长,估计值都会变得更加准确,因为它们会根据实际观察值进行更新。

更新公式按加权比例合并了三个术语:

· 对当前动作的奖励

· 下一个状态动作的最佳估计Q值

· 当前状态动作的估计Q值

强化学习qlearning(图解强化学习第4部分)(14)

> (Image by author)

更新公式中的三个项中的两个是估计,起初并不是很准确。 我们稍后再讨论这两个术语。

但是,第三项。 收到的奖励是具体数据。 这使代理可以根据对环境的实际经验来学习和改进其估计。

Q值获得真实奖励更新

为了更清楚地看到这一点,让我们举一个例子,我们只关注Q表中的一个单元(即一对状态动作对),并跟踪对该单元的更新进度。

让我们看看状态S3和操作a1(对应于橙色单元格)随时间变化的Q值随时间变化的情况。我们第一次访问它时,该单元格的Q值为0。实际上,大多数Q表都填充有零。使用更新公式,我们将该单元格更新为一个很大程度上基于观察到的奖励(R1)的值。

强化学习qlearning(图解强化学习第4部分)(15)

> (Image by author)

现在,让我们看看再次访问该状态对时会发生什么。这可以在同一集内,也可以在以后的集内。

这次,我们看到表中的其他一些Q值也已填充了值。 当代理遵循各种路径并开始访问状态操作对时,先前为零的那些单元已被填充。

另外,请注意,每次奖励(对于来自相同状态的相同操作)不必相同。

强化学习qlearning(图解强化学习第4部分)(16)

> (Image by author)

让我们第三次访问该单元。顺便说一句,请注意,我们的三次访问中的每个目标操作(以紫色显示)不必相同。

强化学习qlearning(图解强化学习第4部分)(17)

> (Image by author)

让我们在一张图片中安排对同一单元格的所有访问,以直观地了解随着时间的推移。当我们在许多情节中访问同一状态动作对越来越多时,我们每次都会收集奖励。单个奖励的观察值可能会波动,但是随着时间的流逝,奖励将收敛至其预期值。这使得Q值也可以随着时间收敛。

强化学习qlearning(图解强化学习第4部分)(18)

> (Image by author)

回忆一下Q值(或状态操作值)代表的含义。 它说,您首先要从特定州采取特定措施,然后再遵循该政策直到事件结束,然后衡量回返率。 如果您在许多情节中进行了多次如此多次的测试,则Q值就是您可以获得的平均回报。

为什么估算随着时间的推移变得更加准确?(第2部分)

我们已经看到"奖励"一词在多次迭代中如何收敛到均值或期望值。

但是更新公式中的其他两个术语是估算值而不是实际数据呢? 尽管它们最初非常不准确,但是随着时间的推移,它们的确也会得到真实观测值的更新,从而提高了准确性。

强化学习qlearning(图解强化学习第4部分)(19)

> (Image by author)

为了了解这一点,让我们看一个情节的最后两个时间步长达到"终端"状态时的示例。 我们将看到的是,最终Q值准确性得到了改善,因为仅使用实际奖励数据而不使用估计值对其进行了更新。 然后,该Q值开始逐渐返回到其Q值之前,依此类推,从而逐步提高了Q值返回路径的准确性。

情节结束时,我们将跟踪终端Q值(蓝色单元格)和终端前Q值(绿色单元格)的更新。

假设在第1集结束时,在(T-1)—时间步长中,特工采取了以下行动。终端前Q值将根据目标操作进行更新。

强化学习qlearning(图解强化学习第4部分)(20)

> NB: For simplicity, we will use the notation Q2 and Q6 instead of Q(2, 2) and Q(6,4) respectively

下一个时间步是第1集的最后一步。在T Here时间步中,代理选择一个动作来达到下一个状态,即终端状态。

由于下一个状态是终端,因此没有目标操作。因此,更新公式中的"最大"项为0。这意味着对终端Q值的更新仅基于实际奖励数据,而不依赖于任何估计值。这导致终端Q值的精度提高。这结束了情节。

强化学习qlearning(图解强化学习第4部分)(21)

> (Image by author)

每当我们在随后的情节(例如第2集)中在(T_1)ˢᵗ时间步长再次访问终端前状态时,都会像以前一样根据目标操作来更新终端前Q值。

更新公式中的"最大"项对应于终端Q值。因此,当更新发生时,好像此终端Q值被反向传输到终端前Q值。

强化学习qlearning(图解强化学习第4部分)(22)

> (Image by author)

让我们在一张图片中列出这三个时间步骤,以可视化随时间变化的进度。我们已经看到终端Q值(蓝色单元格)已用实际数据而不是估计值进行了更新。我们还已经看到,该终端Q值滴流回终端前Q值(绿色单元格)。

强化学习qlearning(图解强化学习第4部分)(23)

> (Image by author)

因此,随着终端Q值的精度逐渐提高,终端Q值也变得更加精确。

随后,这些Q值将返回到(T_2)ᵗʰ时间步长,依此类推。

这样,随着估计的Q值逐渐滴落到情节的路径上,两个估计的Q值项也以提高的准确性为基础在实际观测中。

强化学习qlearning(图解强化学习第4部分)(24)

> (Image by author)

随着播放更多剧集,Q表估计值变得更加准确

随着我们进行越来越多的迭代,更精确的Q值将慢慢传输到路径上更远的单元格。随着每个单元格收到更多更新,该单元格的Q值变得越来越准确。

随着运行越来越多的剧集,Q表中的值会多次更新。

强化学习qlearning(图解强化学习第4部分)(25)

> (Image by author)

Q值收敛到最佳值

我们刚刚看到Q值变得越来越准确。 但是我们真正需要的是最优价值。 我们怎么知道我们要到达那里?

在第一篇文章中,我们了解到国家行为价值始终取决于政策。Q学习算法隐式使用ε贪心策略来计算其Q值。

这项政策鼓励代理商探索尽可能多的状态和行动。它执行的迭代次数越多,探索的路径越多,我们对尝试所有可用选项以寻找更好的Q值的信心就越大。

这是ε贪婪策略算法最终确实找到最佳Q值的两个原因。我们已经非正式地看到了这些,但是我们可以从确实存在更正式的数学证明这一事实中得到安慰!

· 每次迭代,Q值都会变得更好

· 如果进行足够的迭代,您将评估所有可能的选项,并且找不到更好的Q值。

每次更新时,Q值将逐渐变得更加准确,并越来越接近最佳值。

强化学习qlearning(图解强化学习第4部分)(26)

> (Image by author)

显然,这并不是严格的证明,但是希望,这使您对Q Learning的工作原理和收敛方向有一个直觉。

在下一篇文章中,我们将开始学习强化学习中真正有趣的部分,并从Deep Q Networks开始我们的旅程。让我们继续学习!

(本文由闻数起舞翻译自Chris Lovejoy的文章《Reinforcement Learning Explained Visually (Part 4): Q Learning, step-by-step》,转载请注明出处,原文链接:https://towardsdatascience.com/reinforcement-learning-explained-visually-part-4-q-learning-step-by-step-b65efb731d3e)

,