首页 文章

Q学习:改变环境后重新学习

提问于
浏览
3

我已经在一个大小(n x n)的网格上实现了Q学习,中间只有一个奖励100 . 代理人通过以下机构学习1000个历元以达到目标:他以概率0.8选择具有最高状态 - 动作 - 值的移动并选择随机移动0.2 . 移动后,状态动作值由Q学习规则更新 .

现在我进行了以下实验:除了底部的邻居之外,目标旁边的所有字段都获得-100的奖励 . 在学习了1000个时代之后,代理人明显避免走向最高位并且最频繁地从底部到达目标 .

在学习之后将底部邻居的奖励设置为-100并且将顶部邻居设置为0并且在坚持状态动作值映射的同时再次开始学习1000个时期 . 这真的太可怕了!代理需要很长时间才能找到目标(在9x9网格上最多3分钟) . 检查路径后,我看到代理人花了很多时间在两个状态之间反弹,如(0,0) - >(1,0) - >(0,0) - >(1,0)......

我很难想象这种行为是否有意义 . 有人遇到过这样的情况吗?

4 回答

  • 0

    Q学习取决于探索 .

    如果您正在使用e-greedy并且显着减少了epsilon,则代理程序不太可能适应 .

    如果您在州空间的变化远离学习政策所遵循的轨迹,则可能难以到达这些区域 .

    我建议你看一下你的epsilon值以及你随着时间的推移减少它们的速度 .

  • 2

    我想更多的信息可以帮助我成为更多的证书,但你所描述的是我改变了这一点 . 我的直觉告诉我,对于代理人而言,这比仅仅移动目标更难,因为你已经改变了你希望它达到目标的方式 .

    移动“墙”后,您可以为多次迭代增加操作选择策略的随机性 . 这可能会减少代理找到目标的新路径所需的时间 .

  • 0

    这对于标准的Q学习算法来说非常典型 . 正如Concurrent Q-Learning: ReinforcementLearning for Dynamic Goalsand Environments中所述:

    强化学习技术,例如时间差异学习,已被证明在涉及导航到固定目标的任务中表现出良好的性能 . 但是,如果移动目标位置,则先前学习的信息会干扰找到新目标位置的任务,并且性能会相应地受到影响 .

    然而,存在不同的算法,例如上述论文中描述的那种在这种情况下做得更好 .

  • 0

    你能提供代码吗?对我来说这种行为看起来令人惊讶 .

    Imho代理人应该能够忘掉以前学到的知识 . 在强化学习中不应该有“信心”之类的东西 . 网格看起来像

    00000
    00--0
    0-+-0
    0---0
    00000
    

    在最后的尝试 . 在最短路径上随机进入目标的概率是 0.2*1/3 * (0.8+0.2*1/9) . 基本上随机走向对角然后下降 . 因此,算法应该慢慢更新状态 (1,1)Q 值 . 实际上,更新此值的值为 5% . 如果你的学习率不是太低,它最终会更新 . 注意到达目标的所有其他路径将慢慢将其他路径拉向零 .

    你说它在前两个州之间跳跃 . 这向我表明你没有折扣因素 . 这可能会导致两个状态 (0,0)(1,0) 具有相当好的 Q 值,但这些是"self rewarding" . 或者,您可能忘记在更新函数中减去旧值

相关问题