我们如何知道算法已经收敛并确保获得尽可能高的奖励?

人工智能 强化学习 q学习 奖励 收敛 出租车-v3
2021-11-08 07:17:01

我从Justin Francis 的这篇博客文章 Introduction to Reinforcement Learning and OpenAI Gym开始学习 Q 表,其中一行如下 -

经过这么多集之后,该算法将收敛并使用 Q 表确定每个状态的最佳动作,从而确保尽可能高的奖励。我们现在认为环境问题已解决。

Q表由Q-learning公式更新 Q[state,action] += alpha * (reward + np.max(Q[state2]) - Q[state,action])

我跑了 100000 集,其中我得到以下 -

Episode 99250 Total Reward: 9
Episode 99300 Total Reward: 7
Episode 99350 Total Reward: 6
Episode 99400 Total Reward: 14
Episode 99450 Total Reward: 10
Episode 99500 Total Reward: 10
Episode 99550 Total Reward: 9
Episode 99600 Total Reward: 14
Episode 99650 Total Reward: 5
Episode 99700 Total Reward: 7
Episode 99750 Total Reward: 3
Episode 99800 Total Reward: 5

我不知道最高的奖励是什么。它看起来不像已经收敛。然而,下图

在此处输入图像描述

显示出收敛趋势,但绘制的比例更大。

当游戏被 reset() 但“学习的”Q 表可用时,应该采取的动作顺序是什么?我们怎么知道这一点以及在这种情况下的回报?

1个回答

您的 Q 学习更新表达式看起来正确。每一集的Total Reward结尾都不会相同,因为每一集的出租车的起始位置不同,因此到达最终目的地所需的步数在每一集中都会有所不同。您发布的图表显示,算法在短集数后收敛,因此 100000 集可能太多了。由于环境很简单,请尝试为某些起始特定位置手动计算最佳策略,然后查看算法是否执行相同的动作序列。