最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 直觉式强化学习系列直观的Q学习算法(图)

    直观的强化学习系列

    直观的 Q-learning 算法的工作原理和可视化指南

    > Carlos Esteves 在 Unsplash 上拍摄的照片

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

    在本文中,现在开始研究我们的第一个 RL 算法并了解有关 Q 学习的更多信息,真是令人兴奋!您可以找到许多资源来逐步解释算法的作用,但我这篇文章的目的是让人们直观地了解算法收敛的原因并为我们提供最佳价值。

    这是该系列中以前和后续文章的快速摘要。我的目标一直是不仅要了解某些东西是如何工作的,还要了解它为什么会这样工作。

    基本概念和术语介绍(什么是 RL 问题以及如何使用马尔可夫决策过程中的技术和利益、价值和政策等概念将 RL 问题解决框架应用于它)

    解决方案方法(流行的强化学习解决方案的概述,并根据这些解决方案之间的关系对其进行分类。贝尔曼方程的重要部分是所有强化学习算法的基础。)

    无模型算法(使用迭代算法逐步改进基于预测值和基于策略的解决方案的异同。利用、探索和 ε-greedy 策略。)

    Q-learning – 这篇文章(对算法的深入分析,这是后续深度学习方法的基础。直观了解为什么算法会收敛到最优值。)

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

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

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

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

    如果您还没有阅读过之前的文章,尤其是第二篇和第三篇文章,最好先阅读它们,因为本文建立在我们在这里讨论的许多概念之上。

    Q-学习概述

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

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

    我们首先将所有Q值初始化为零。随着智能体与环境交互并获得反馈,算法会迭代地改进这些 Q 值,直到它们收敛到最优 Q 值。它使用贝尔曼方程来更新它们。

    我们如何构建 Q 表?

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

    >(作者图片)

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

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

    >(作者图片)

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

    Q-学习算法

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

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

    此过程与上一篇文章中描述的过程非常相似。因此,我们不会对所有步骤重复说明。

    >(作者图片)

    差异是 Q 学习算法的一个关键特征,即它如何更新其估计值。用于在第四步中进行更新的方程基于贝尔曼方程,但如果你仔细研究它,它会使用我们之前研究的公式的轻微变化。

    让我们放大这个过程并更详细地研究它。

    Q-learning 在每个时间步使用两个不同的动作

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

    在算法的第 2 步中,代理使用 ε-greedy 策略从当前状态 (S1)) 中选择当前动作 (a1)。这被传递给环境执行并接收一个奖励(R1) 和下一个状态(S2) 形成反馈动作。

    >(作者图片)

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

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

    >(作者图片)

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

    >(作者图片)

    …并更新当前的 Q 值。

    >(作者图片)

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

    · 当前动作 – 从当前状态开始,在环境中实际执行的动作,其 Q 值已更新。

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

    >(作者图片)

    行动的二元性使 Q-learning 独一无二。

    · 我们可以探索和发现执行行动的新途径。

    但是,当我们更新 Q 值估计以改进它们时,我们总是使用最佳 Q 值用到贪心策略的算法,即使操作可能尚未执行。

    >(作者图片)

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

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

    >(作者图片)

    这被称为“off-policy”学习,因为执行的动作与用于学习的目标动作不同。

    Q 表是如何填充的?

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

    让我们看一个在第一步中发生了什么的例子,这样我们就可以看到 Q 表是如何填充实际值的。

    >(作者图片)

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

    >(作者图片)

    算法策略部门_用到贪心策略的算法_0-1背包问题的算法设计策略

    通过这种方式,Q 表的一个单元格从零值变为填充了来自环境的一些实际数据。

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

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

    仔细想想,像 Q Learning 这样的算法根本无法收敛到最优值,这似乎是完全不可想象的。

    您可以从任意估计开始,并在每个时间步用其他估计更新这些估计。

    那么为什么它最终会给你一个更好的估计呢?

    原因是在每个时间步,随着基于实际观测值的更新,估计值变得更加准确。

    更新后的公式以加权比例组合了三个项:

    · 当前行动的奖励

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

    当前状态动作的估计Q值

    >(作者图片)

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

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

    Q值获得真实奖励更新

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

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

    >(作者图片)

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

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

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

    >(作者图片)

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

    >(作者图片)

    让我们在一张图片中安排对同一单元格的所有访问,以可视化随时间的进展。随着我们在许多情节中访问越来越多的相同状态动作对,我们每次都会收集奖励。单个奖励的观察值可能会波动,但随着时间的推移,奖励将收敛到其预期值。这允许 Q 值也随时间收敛。

    >(作者图片)

    回想一下 Q 值(或状态动作值)代表什么。它说您首先从特定状态采取特定措施,然后遵循该政策直到事件结束,然后测量回报率。Q 值是在许多图上运行多次测试时可以获得的平均回报。

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

    我们已经看到“奖励”这个词是如何在多次迭代中收敛到平均值或期望值的。

    但是更新公式中的其他两项是估计值而不是实际数据呢?尽管它们最初非常不准确,但随着时间的推移,它们确实会根据真实观察结果进行更新,从而提高其准确性。

    >(作者图片)

    为了理解这一点,让我们看一个图的最后两个时间步达到“终端”状态的例子。我们将看到最终的 Q 值准确度有所提高,因为它仅使用实际奖励数据而不是估计值进行更新。然后这个 Q 值开始逐渐回到它之前的 Q 值,依此类推,逐渐增加 Q 值返回路径的精度。

    在绘图的最后,我们将跟踪终端 Q 值(蓝色单元格)和前终端 Q 值(绿色单元格)的更新。

    假设在第 1 集结束时,在 (T-1)-timesteps,代理采取以下动作。终端前 Q 值将根据目标动作进行更新。

    > 注意:为简单起见,我们将分别使用符号 Q2 和 Q6 代替 Q(2, 2) 和 Q(6,4)

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

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

    >(作者图片)

    每当我们在后续情节(例如情节 2)中在 (T_1)ˢᵗ 时间步) 再次访问前终端状态时,前终端 Q 值会根据之前的目标操作进行更新。

    更新公式中的“max”项对应于终端 Q 值。因此,当更新发生时,就好像这个终端 Q 值被转移回了前终端 Q 值。

    >(作者图片)

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

    >(作者图片)

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

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

    这样,随着估计的 Q 值沿着图的路径逐渐下降,两个估计的 Q 值项也基于实际观察,并提高了准确性。

    >(作者图片)

    随着更多剧集的播放,Q-meter 估计变得更加准确

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

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

    >(作者图片)

    Q值收敛到最优值

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

    在第一篇文章中,我们了解到状态行为的价值始终取决于政策。Q-learning 算法隐含地使用 ε-greedy 策略来计算其 Q 值。

    该政策鼓励代理探索尽可能多的状态和行动。它执行的迭代越多,探索的路径越多,我们就越有信心尝试所有可用的选项来找到更好的 Q 值。

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

    每次迭代 Q 值都会变好

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

    随着每次更新,Q值会逐渐变得更准确,更接近最优值。

    >(作者图片)

    显然,这不是一个严格的证明,但希望这能让您直观地了解 Q Learning 的工作原理以及它的收敛点。

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

    (本文由文舒奇武翻译自Chris Lovejoy的文章《Reinforcement Learning Explained Visually》(部分4):Q学习,循序渐进”,转载请注明出处,原文链接:)

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 直觉式强化学习系列直观的Q学习算法(图)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论