Q学习,测验次数对收敛有什么影响?

时间:2019-01-16 06:03:05

标签: python artificial-intelligence q-learning

在以下代码中的

是通过Q学习解决FrozenLake 4x4的代码。在培训部分,为什么我们要播放20集测试环境,而不是每个循环只播放1集? 我尝试了两次迭代:

在测试环境中进行20次迭代时,代理会进行超过16000次尝试收敛。

在进行1次测试环境迭代时,代理会在不到1000次尝试中收敛。

library(tidyverse)

zed %>%
  fill(possessionName) %>%
   mutate(output_col = c(1, +(possessionName != lag(possessionName))[-1]))

1 个答案:

答案 0 :(得分:0)

在此示例中,TEST_EPISODES用于更改求解标准。使用TEST_EPISODES = 1,只要最近的游戏得分> 0.80,就认为该游戏已解决;使用TEST_EPISODES = 20,最近20轮的平均得分必须> 0.80,才能考虑该游戏的解决。 / p>

由于该游戏具有随机动作,即每次以相同状态进行相同动作时,您不会获得相同的结果,因此您推动TEST_EPISODES越高,该解决方案就越可能可靠成为。使用TEST_EPISODES = 1时,如果脚本只是偶然在第一次尝试中随机找到目标,则该脚本将认为游戏已解决,但是在模型较差的情况下连续执行20次的可能性大大降低。

与第一次达到目标的速度相比,对于这类问题而言,大量情节的平均值通常是更好的指标。想象一下,如果您必须在这种环境下工作并且您的生活取决于安全地达到目标,那么您可能希望它学习直到分数阈值非常接近1。