【问题标题】:what should the Q matrix dimensions be in an open-like environment for Q-learningQ 矩阵维度在 Q 学习的开放式环境中应该是什么?
【发布时间】:2018-12-01 08:28:11
【问题描述】:

我想在 OpenAI 的 Bipedal Walker v2 中实现 Q-learning,但在寻找教程后,它们似乎总是有限的环境,这使得 Q 矩阵和奖励矩阵易于初始化。

例如:http://mnemstudio.org/path-finding-q-learning-tutorial.htm

我唯一的问题是,在更开放的环境(例如我想要使用的环境)中,这些矩阵的维度应该是多少?

有问题的环境:https://gym.openai.com/envs/BipedalWalker-v2/

您得到的观察结果(请注意,有些值可能是无限的):https://github.com/openai/gym/wiki/BipedalWalker-v2

【问题讨论】:

    标签: python deep-learning reinforcement-learning q-learning openai-gym


    【解决方案1】:

    将 Q 值存​​储在矩阵(或表)中的强化学习方法称为表格 RL 方法。这些是最直接/最简单的方法,但正如您所发现的,并不总是很容易适用。

    您可以尝试的一种解决方案是离散化您的状态空间,创建大量“垃圾箱”。例如,hull_angle 观察值的范围可以从02*pi。例如,您可以将 0 < hull_angle <= 0.1 的任何状态映射到第一个 bin,将 0.1 < hull_angle < 0.2 的状态映射到第二个 bin,等等。如果观察范围可以从 -inf+inf,您可以只需决定在某处放置一个阈值并将超出该阈值的每个值视为同一个 bin(例如,从 -inf-10 的所有内容映射到同一个 bin,从 10+inf 另一个 bin 的所有内容,然后更小中间有更多垃圾箱的区域)。

    您必须将每一个观察结果离散化到这样的 bin 中(或者干脆丢弃一些观察结果),并且所有 bin 索引的组合将在矩阵中形成一个索引。如果您有23 不同的观察值,并为每个观察值创建例如10 箱,那么您的最终Q 值矩阵将有10^23 条目,这是一个...相当大的数字,可能不适合您的记忆。


    另一种解决方案是使用函数逼近研究不同的强化学习方法。具有函数逼近的最简单的方法类使用线性函数逼近,我建议您首先研究这些方法来解决您的问题。线性函数逼近方法本质上是尝试学习一个线性函数(权重向量),以便通过对权重向量和观测值/特征向量之间的点积进行点积来估计 Q 值。

    如果您熟悉 Sutton 和 Barto 的强化学习书第二版草稿,您会在第 9-12 章中找到许多此类方法。


    另一类函数逼近方法使用(深度)神经网络作为函数逼近器,而不是线性函数。这些可能比线性函数逼近更有效,但也更难理解,并且通常需要很长时间才能运行。如果您想获得最佳结果,不妨看看它们,但如果您仍在学习并且从未见过任何非表格 RL 方法,那么研究更简单的变体(例如线性函数)可能是明智的先近似。

    【讨论】:

    • 我查了一下,是的,函数逼近是可行的。从我看到的情况来看,你几乎只是用奖励作为输出标签和 3 或 4 帧输入同时进行梯度下降,每次只训练一个 epoch。我现在的问题是,如何使用它来预测比下一个状态更多的信息,我们是否使用另一个神经网络来近似状态,然后在生成的状态上使用奖励近似器来生成贝尔曼方程?
    • @Tissuebox 不,那将是另一类名为“基于模型的 RL”的 RL 方法。标准方法,即使是函数逼近,仍然是尝试学习 Q-真正预测Q-values 的函数(例如,训练信号不仅仅是一步奖励,而是例如一步奖励加上gamma 乘以Q-value,正如您学习的函数所预测的那样到目前为止下一个状态。与表格 RL 中的更新规则完全相同。您可以将表格 RL 中的Q-table 视为“函数逼近器”,它完美区分所有状态
    【解决方案2】:

    在连续状态空间的情况下,谨慎的做法是查看神经网络近似而不是对数据进行分箱,尤其是在您的情况下,其中有多个状态特征。对数据进行分箱仍然会有与之相关的维度灾难。如果您想使用 Q-learning,请查看Deep Q-Networks。它是深度强化学习的一个非常流行的版本,已被谷歌 DeepMind 推广。如果您想知道如何从问题开始,请查看使用 keras 的简单 github 示例,这是一个非常简单的神经网络库。

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      相关资源
      最近更新 更多