我在一个大小为 (nxn) 的网格上实现了 Q 学习,中间的单个奖励为 100。代理通过以下代理学习 1000 个 epoch 以达到目标:他以 0.8 的概率选择具有最高 state-action-value 的移动,并选择 0.2 的随机移动。在移动之后,状态-动作值由 Q 学习规则更新。
现在我做了以下实验:除了底部的邻居之外,目标旁边的所有字段都获得了 -100 的奖励。在学习了 1000 个 epoch 之后,智能体显然避免了走上坡路,并且最频繁地从下坡到达目标。
学习后,将底部邻居的奖励设置为 -100,将顶部邻居的奖励设置回 0,并在坚持状态动作值图的同时再次开始学习 1000 个 epoch。这真的很可怕!代理需要很长时间才能找到目标(在 9x9 网格上最多 3 分钟)。检查路径后,我发现代理花费大量时间在 (0,0)->(1,0)->(0,0)->(1,0) 等两个状态之间来回切换......
我很难想象这种行为是否有意义。有人遇到过这样的情况吗?