专栏首页磐创AI技术团队的专栏强化学习的基本迭代方法

强化学习的基本迭代方法

磐创AI分享

作者 | Nathan Lambert

编译 | VK

来源 | Towards Data Science

研究价值迭代和策略迭代。

本文着重于对基本的MDP进行理解(在此进行简要回顾),将其应用于基本的强化学习方法。我将重点介绍的方法是"价值迭代"和"策略迭代"。这两种方法是Q值迭代的基础,它直接导致Q-Learning。

❝Q-Learning开启了我们所处的深度强化学习的浪潮,是强化学习学生学习策略的重要一环。 ❞

回顾马尔可夫决策过程

马尔可夫决策过程(MDPs)是支持强化学习(RL)的随机模型。如果你熟悉,你可以跳过这一部分,不过我增加了一些相关的解释。

定义

  • 状态集
s\in S,动作集

a\in A$。状态和动作是代理程序所有可能的位置和动作的集合。在「高级强化学习」中,状态和动作是连续,所以这需要重新考虑我们的算法。

  • 转换函数T(s,a,s')。给定当前位置和给定动作,T决定下一个状态出现的频率。在强化学习中,我们不访问这个函数,因此这些方法试图对采样数据进行近似或隐式学习。
  • 奖励函数R(s,a,s')。此函数说明每个步骤可获得多少奖励。在强化学习中,我们不使用此函数,因此我们从采样值r中学习,采样值r使算法探索环境,然后利用最优轨迹。
  • 折扣因子γ(伽马,范围[0,1])可将下一步的值调整为将来的奖励。在强化学习中,我们不使用此函数,γ(gamma)控制了大部分学习算法和Bellman系优化的收敛性。
  • 初始状态s0,也可能是结束状态。

重要价值

MDP有两个重要的特征,状态值和机会节点(chance node)的q值。任何MDP或RL值中的*表示最佳数量。

  • 状态值:状态的值就是从状态开始后奖励的最优递归和。
  • 状态的Q值,动作对:Q值是与状态-动作对相关联的折扣奖励的最优和。

❝最佳值与最佳动作条件q值相关。然后,值和q值更新规则非常相似(加权转换,奖励和折扣因子)。顶部:值与q值的耦合;中部:Q值递归:,底部:值的迭代。参考:https://inst.eecs.berkeley.edu/~cs188/sp20/ ❞

引领强化学习

值迭代

学习所有状态的值,然后我们可以根据梯度来操作。值迭代直接从Bellman更新中学习状态的值。在某些非限制性条件下,Bellman更新被保证收敛到最优值。

「学习一项策略可能比学习一种价值观更直接」。学习一个值可能需要无限长的时间来收敛到一个64位浮点数的数值精度(考虑在每次迭代中一个常数的移动平均,在开始估计为0之后,它将永远添加一个越来越小的非零数)。

策略迭代

学习与值相关的策略。策略学习增量地查看当前值并提取策略。由于动作空间是有限的,我们希望它能比值迭代收敛得更快。从概念上讲,对操作的最后一次更改将发生在小的滚动平均更新结束之前。策略迭代有两个步骤。

第一个称为策略提取,就是如何从一个值转换到一个策略,这策略使期望值最大化。

第二步是策略评估。策略评估采用策略,并以策略为条件进行值迭代。这些样本永远与策略相关,但是我们必须运行迭代算法,以减少提取相关「动作」信息的步骤。

与值迭代一样,由于底层的Bellman更新,对于大多数合理的MDPs,策略迭代保证收敛。

Q值迭代

学习最优值的问题是很难从中提取出策略。argmax算子明显是非线性的,很难进行优化,因此q值迭代法向直接策略提取迈出了一步。每个状态下的最优策略就是那个状态下的最大q值。

大多数指令以"值迭代"开头的原因是,它自然地进入了Bellman更新中。Q值迭代需要一起替换两个关键MDP值关系。这样做之后,这是我们将要了解的Q-Learning的第一步。

大多数指令以值迭代开始的原因是,它可以更自然地插入Bellman更新。Q值迭代需要一起替换两个关键的MDP值关系。这样做之后,它就离我们将要了解的Q-learning一步之遥了。

这些迭代算法是怎么回事?

让我们确保你理解了所有的术语。本质上,每个更新由求和后的两个项组成(也可能是由max来进行的选择动作)。让我们用括号括起来然后讨论它们与MDP的关系。

第一项是T(s,a,s')R(s,a,s')乘积的总和。这一项表示潜在的值和给定状态和转换的可能性。「T」,或者说转换,决定了从转换中获得给定回报的可能性(回想一下,一个元组s,a,s '决定了其中一个动作a将一个代理从一个状态s带到另一个状态s')。这将做一些事情,这会做一些事情,例如权衡具有高奖励的低概率状态与权重较低的频繁状态。

下一项决定了这些算法的“bellman特性”。它是迭代算法V的最后一步的数据加权,上面的公式有一项。这从邻近状态获取关于值的信息,这样我们就可以理解长期的转变。将这一项看作递归更新的主要发生位置,而第一项则是由环境决定的优先权重。

收敛条件

告知所有迭代算法"在某些条件下收敛到最佳值或策略"。这些条件是:

  1. 「状态空间总覆盖率」。条件是所有状态、动作、next_state元组都是在条件策略下到达的。如果不这样做,来自MDP的一些信息将会丢失,并且值可能会停留在初始值上。
  2. 「折扣因子γ<1」。否则造成无限循环,并且最后趋于无穷大。

值得庆幸的是,在实践中,这些条件很容易满足。大多数探索都具有epsilon贪婪性,包括总有随机动作的机会(因此任何动作都是可行的),并且non-one折现因子会导致更佳的性能。最终,这些算法可以在很多设置下工作,因此绝对值得一试。

强化学习

我们如何将我们所看到的变成强化学习问题?我们需要使用样本,而不是真正的T(s,a,s')和R(s,a,s')函数。

基于样本的学习-如何解决隐藏的MDP

MDPs中的迭代方法与解决强化学习问题的基本方法之间的惟一区别是,RL样本来自MDP的底层转换和奖励函数,而不是将其包含在更新规则中。有两件事我们需要更新,替换T(s,a,s ')和替换R(s,a,s ')

首先,让我们将转换函数近似为每个观察元组的平均动作条件转换。我们没有看到的所有值都是用随机值初始化的。这是基于模型的强化学习最简单的形式(我的研究领域)。

现在,剩下的就是记住如何使用奖励。但是,我们实际上每一步都有一个奖励,所以我们可以不受惩罚(方法用许多样本平均出正确的值)。考虑用采样奖励近似q值迭代方程,如下所示。

「上面的等式是Q-Learning」。我们从一些填充有随机值的向量Q(s,a)开始,然后收集与世界的交互并调整alpha。Alpha是一种学习率,因此当我们认为算法正在收敛时,我们将降低它。

结果表明,Q-learning与Q-value迭代非常相似,但我们只是在一个不完整的世界观下运行这个算法。

机器人和游戏中使用的Q-learning是在更复杂的特征空间中,神经网络近似于一个包含所有状态-动作对的大表格。

原文链接:https://towardsdatascience.com/fundamental-iterative-methods-of-reinforcement-learning-df8ff078652a

本文分享自微信公众号 - 磐创AI(xunixs),作者:VK

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度强化学习(DRL)专栏(二):有模型的强化学习

    【磐创AI导读】:本篇文章是深度强化学习专栏的第二篇,讲了第三节有模型的强化学习,希望对大家有所帮助。查看上篇关于本专栏的介绍:深度强化学习(DRL)专栏开篇。...

    磐创AI
  • Python NLP库top6的介绍和比较

    自然语言处理(NLP)在今天已经变得越来越流行,尤其是在深度学习迅猛发展的大背景下变得更加引人注目。NLP属于人工智能的一个领域,旨在理解文本和从中提取重要信息...

    磐创AI
  • 深度强化学习(DRL)专栏(一)

    【磐创AI导读】:本篇文章是深度强化学习专栏的第一篇,讲了引言和强化学习基础知识,希望对大家有所帮助。查看上篇关于本专栏的介绍:深度强化学习(DRL)专栏开篇。...

    磐创AI
  • 设计模式之迭代器与组合模式(二)

    在上次的文章中,我们通过层层引导,已经知道了迭代器模式的由来。现在我们再好好总结下。

    程序员小跃
  • Python3 迭代器

    py3study
  • python学习笔记4.2-python高级之迭代器

    迭代是Python中最强有力的特性之一,同时对编程人员来说,也是最难理解的一种用法。其实从高层次来看,迭代就是一种处理序列中元素的方式。通过自定义迭代对象可以...

    锦小年
  • python学习笔记7.6-内建模块itertools

    python有一个高级特性就是迭代器,能够提供各种各样的迭代方式,而代码却非常的简单。itertools提供了非常丰富的有关于迭代操作的函数,下面一一介绍。 再...

    锦小年
  • CODING 敏捷实践完全指南

    敏捷研发是涉及整个软件工程的理念与实践,它的核心是迭代和增量式软件开发方法。开发者快速发布一个可运行但不完美的版本投入市场,在后续迭代中根据用户的反馈改进产品,...

    CODING研发管理系统
  • 设计模式实战-迭代器模式,最常用的设计模式之一

    迭代器模式(Iterator Pattern)又称为游标(Cursor)模式,是最常被使用的几个模式之一,被广泛地应用到 Java 的 API 中。例如,Jav...

    架构师修炼
  • 管理|一次产品迭代的完整计划升级版(强烈推荐给项目管理者)

    黄小怪

扫码关注云+社区

领取腾讯云代金券