【问题标题】:is Q-learning without a final state even possible?没有最终状态的 Q 学习是否可能?
【发布时间】:2017-05-09 22:21:24
【问题描述】:

我必须用 Q-learning 来解决这个问题。 好吧,实际上我必须评估一个基于 Q-learning 的策略。

我是一名旅游经理。

我有 n 家酒店,每家可以容纳不同数量的人。

根据我选择的房间,我为每个入住酒店的人获得奖励。

如果我愿意,我也可以谋杀这个人,所以它不会在任何酒店里,但它会给我一个不同的奖励。 (好吧,那是个玩笑……但这是说我可以进行自我转换。所以我房间里的人数在那个动作之后不会改变)。

  • 我的状态是一个包含每家酒店人数的向量。

  • 我的动作是一个由 0 和 1 组成的向量,它告诉我我在哪里
    放新人。

  • 我的奖励矩阵由我在每次转换中获得的奖励组成
    状态之间(甚至是自转换状态)。

现在,因为我可以获得无限数量的人(即我可以填充它但我可以继续杀死他们)我如何构建 Q 矩阵?没有 Q 矩阵,我无法获得策略,因此无法评估它...

我看错了什么?我应该选择一个随机状态作为最终状态吗?我完全没有抓住重点吗?

【问题讨论】:

  • 所以Q矩阵可以是一个大小为[num_states x num_actions]的矩阵。你想学什么?
  • @NKN 我的政策希望随着时间的推移最大限度地提高收入。Q 是按你说的方式构建
  • 如果你有你的 Q 矩阵并且你运行 Q-learning 最后你会得到你的 Q_optimal 假设 Q*。算法收敛后,策略为argmax_{action}(Q*)。
  • @NKN 我同意你的观点,但我的问题是构建 Q 矩阵。我的意思是,在算法中应该有一个''对于每个状态......直到状态是最终状态''(就像这个页面上的那个:mnemstudio.org/path-finding-q-learning.htm我的问题是我没有看到任何最终状态在我的情况下由于自动转换:/我坚持使用“每个酒店都已满”状态作为最终状态,但我不知道这只是猜测还是应该是正确的。

标签: machine-learning reinforcement-learning q-learning


【解决方案1】:

这个问题很老了,但我认为值得回答。

其中一个问题是不一定有情节的概念和相应的终端状态。相反,这是一个持续存在的问题。您的目标是在未来永远最大化您的奖励。在这种情况下,折扣因子 gamma 小于 1,它基本上指定了您在每一步中对未来的展望。回报被指定为未来奖励的累积贴现总和。对于情节问题,通常使用 1 的折扣,回报是在情节结束之前的未来奖励的累积总和。

要学习最优 Q,即遵循最优策略的预期回报,您必须有一种方法来执行离策略 Q 学习更新。如果您使用样本转换来获取 Q-learning 更新,那么您将必须指定在环境中采取行动以获取这些样本的行为策略。要了解有关 Q-learning 的更多信息,您应该阅读标准的入门 RL 教科书:“强化学习:简介”,Sutton 和 Barto。

【讨论】:

    【解决方案2】:

    RL 问题本身不需要最终状态。他们需要的是奖励状态。所以,只要你有一些奖励,你就可以去,我想。

    我没有很多 XP 遇到像这样的 RL 问题。正如评论者所说,这听起来像是一个非常巨大的状态空间。如果您对使用离散方法感到满意,您将获得一个良好的开端并通过限制问题的范围(有限数量的人和酒店/房间)并在较小的状态矩阵上放松 Q 学习来了解您的问题.

    或者,您可以直接跳入一种可以处理无限状态空间的方法,例如神经网络。

    根据我的经验,如果您有耐心先尝试较小的问题,您会为接下来解决较大的问题做好更好的准备。

    【讨论】:

    • 假设我有 3 家酒店,每家都有 2 人的房间。我的空间状态是有限的,我的行动空间也是有限的......如果我有一个最终状态,我可以轻松构建 Q,我想我应该将“所有酒店满员”作为最终状态?并在考虑到自我转换的情况下为每个状态设置奖励?因为没有选择一个状态作为最终的算法并不像你说的那样好。
    • 也许我不明白。 “最终状态”是什么意思?
    • 这里称为“目标状态”mnemstudio.org/path-finding-q-learning.htm我正在使用该过程来构建我的 Q 矩阵,如果没有标记为目标状态的东西,我将无法退出循环。
    • 我明白了。好吧,即使所有房间都没有满员,您当然也会为每种配置的房间和客人获得奖励(包括消极和积极的)。您正在处理的这个问题可能会一直持续下去,因此,您应该计算 每个 状态的奖励,并为每个状态的时间步数设置上限,而不是专注于目标(终止)状态试验(试验结束前一系列动作中的动作开始新的动作)。目标是最大化总奖励,而不是达到某个目标状态。
    【解决方案3】:

    也许这不是关于“可能吗?”的答案,但是...阅读 r-learning,为了解决这个特定问题,您可能不仅要学习 Q 或 V 函数,还要学习 rho - 随着时间的推移预期的回报。 Q 和 rho 的联合学习会产生更好的策略。

    【讨论】:

    • 这看起来和感觉更像是评论而不是答案。
    • 是的,但我仍然无法评论问题
    • 我知道之后的学士学位论文:是的,没有最终状态的 Q-learning 是可能的。只需使用最后一个即使您必须分析的终端条件,在我们的示例中是训练集中的最后一个人。之后,您可以构建策略 Q*,决定是否在测试集中对其进行改进或将其用作静态策略,您就可以开始了。 @danelliottster 解释得很好。
    【解决方案4】:

    要在具有无限状态空间的情况下迭代上述响应,您绝对应该考虑对您的 Q 函数进行某种泛化。您将在无限空间中从 Q 函数响应中获得更多价值。您可以尝试几种不同的函数逼近,无论是简单的线性回归还是神经网络。

    就像 Martha 说的那样,你需要有一个小于 1 的 gamma 才能解释无限的视界。否则,您将尝试确定 N 个都等于无穷大的策略的适应度,这意味着您将无法衡量最优策略。

    我想在这里补充的主要内容是,对于以后阅读本文的人来说,奖励塑造的重要性。在一个没有最终大奖励的无限问题中,可能会出现次优的奖励循环,代理会“卡住”,因为某个状态的奖励可能比有限范围内的任何邻居都高(由伽玛定义)。考虑到这一点,您需要确保惩罚代理多次以相同的状态登陆,以避免这些次优循环。显然,探索也是极其重要的,当问题无穷无尽时,总是需要进行一些探索。

    【讨论】:

    • 拥有一个例如 x 步的缓冲区来保持路径遍历并避免返回它们以解决次优奖励循环问题是否合乎逻辑?我的意思是我只保留 10 或 20 步,而不是保留所有步骤。因为我认为检查所有先前的步骤将是一项昂贵的操作。顺便说一句,谢谢你的好回答
    • 在我的问题中,一些奖励系统(例如为越来越接近目标的代理提供奖励)似乎可以显着减少次优循环问题。我认为这是因为它阻止了机器人返回到远离目标的先前状态。所以看来定义一个缓冲区并不是唯一的选择。
    猜你喜欢
    • 2015-02-04
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2016-06-09
    • 2013-09-14
    • 2017-02-05
    相关资源
    最近更新 更多