非静止环境中的强化学习

机器算法验证 马尔科夫过程 强化学习 平稳性 q学习
2022-03-12 20:49:22

Q1:在强化学习中,处理非平稳环境的方法有通用的或公认的方法吗?

Q2:在我的网格世界中,当访问一个状态时,我的奖励函数会发生变化。每一集的奖励都会重置为初始状态。我希望我的代理学习的是“除非你真的需要,否则不要回去”,但这会使环境不稳定。可以/应该将这个非常简单的规则合并到 MDP 模型中吗?如何?Q-learning 是解决这个问题的最佳解决方案吗?有什么建议或可用的例子吗?

Q3:我一直在研究使用体验重放的 Q-learning 作为处理非静止环境的解决方案,因为它对连续更新进行去相关。这是该方法的正确使用还是更多地处理使学习更有效率的数据?而且我只看到它与值近似一起使用。我不确定将它用于简单的离散状态空间(如 gridworld)是否是一种矫枉过正,或者有不同的原因。

即使您无法解决所有问题,也请随时回答或发表评论。

2个回答

Q1:在强化学习中,处理非平稳环境的方法有通用的或公认的方法吗?

大多数基本的 RL 代理都是在线的,在线学习通常可以处理非平稳问题。此外,控制问题中状态值和动作值估计器的更新规则通常是为非平稳目标编写的,因为目标已经随着策略的改进而变化。这并不复杂,只需在估计值时在更新中使用学习率,实际上是滚动几何平均值,而不是以未加权的方式对所有历史进行平均。α

但是,这解决了长期的非平稳性,例如在剧集之间或在更长的时间范围内发生变化的问题。您的描述看起来更像是您希望在短时间内根据代理所采取的行动来改变奖励结构。对动作的动态响应更好地构建为不同的更复杂的 MDP,而不是更简单的 MDP 中的“非平稳性”。

代理无法学习尚未采样的环境的更改,因此更改奖励结构不会阻止代理返回到之前访问过的状态。除非您在代理中使用类似 RNN 之类的东西,否则代理将不会对剧集中之前发生的事情有“记忆”,除了当前状态中表示的任何内容(可以说使用 RNN 会使 RNN 部分的隐藏层国家)。在多个情节中,如果您使用表格 Q-learning 代理,那么代理将简单地了解某些状态具有低值,它将无法得知对状态的第二次或第三次访问会导致该效果,因为它没有表示该知识的方式。它将无法以足够快的速度适应变化,无法在线和中期学习。

Q2:在我的网格世界中,当访问一个状态时,我的奖励函数会发生变化。我希望我的代理学习的是“除非你真的需要,否则不要回去”,但这会使环境不稳定。

如果这就是您需要智能体学习的全部内容,也许可以通过合适的奖励结构来鼓励这一点。在你这样做之前,你需要了解自己“真正需要”意味着什么,以及这在逻辑上必须有多严格。尽管只是对访问代理已经或最近访问过的任何位置分配一些惩罚,但您可能会没事。

可以/应该将这个非常简单的规则合并到 MDP 模型中吗?如何?

是的,您应该将有关访问位置的信息添加到状态中。这会立即使您的状态模型比简单的网格世界更复杂,增加问题的维度,但这是不可避免的。大多数现实世界的问题很快就会超过为教授 RL 概念而提供的玩具示例。

一种替代方法是将问题定义为部分可观察马尔可夫决策过程(POMDP)在这种情况下,“真实”状态仍将包括所有必要的历史记录以计算奖励(由于这是计算机上的一个玩具问题,您仍然必须以某种方式表示它),但代理可以尝试从受限制的状态的知识,只要你让它观察到。一般来说,这是一种比扩展状态表示更难的方法,我不会在这里推荐它。但是,如果您觉得这个想法很有趣,您可以使用您的问题来探索 POMDP。这是最近的一篇论文(来自 Google 的 Deep Mind 团队,2015 年),该论文着眼于两种 RL 算法与 RNN 相结合来解决 POMDP。

Q3:我一直在研究使用体验重放的 Q-learning 作为处理非静止环境的解决方案,因为它对连续更新进行去相关。这是该方法的正确使用还是更多地处理使学习更有效率的数据?

经验回放对非静止环境无济于事。事实上,这可能会使他们的表现变得更糟。但是,如前所述,您的问题实际上与非平稳环境有关,而是与处理更复杂的状态动态有关。

如果状态数量增加到足够大的数量,可能需要做的是查看函数逼近。例如,如果您想要处理任何回溯并有一个复杂的奖励修改规则来跟踪每个访问过的位置,那么您的状态可能会从单个位置编号更改为显示访问过的位置的地图。因此,例如,它可能从网格世界的 64 个状态变为显示已访问方块的 ^ {这太高了,无法在值表中跟踪,因此您通常会使用神经网络(或卷积神经网络)来估计状态值。648×8264

使用函数估计器,经验回放非常有用,因为没有它,学习过程可能会不稳定。出于这个原因,最近玩 Atari 游戏的 DQN 方法使用了体验回放。

Q1:Q learning 是一种在线强化学习算法,适用于固定环境。它也可以与非平稳模型一起使用,条件是模型(奖励函数和转移概率)不会快速变化。