1

我已经使用 python 实现了 VI(值迭代)、PI(策略迭代)和 QLearning 算法。比较结果后,我注意到了一些东西。VI 和 PI 算法收敛到相同的实用程序和策略。使用相同的参数,QLearning 算法收敛到不同的实用程序,但与 VI 和 PI 算法的策略相同。这是正常的吗?我阅读了很多关于 MDP 和 RL 的论文和书籍,但找不到任何东西可以说明 VI-PI 算法的实用程序是否应该与 QLearning 收敛到相同的实用程序。

以下信息是关于我的网格世界和结果的。

我的网格世界

网格世界.png

  • 状态=> {s0, s1, ... , s10}
  • 动作 => {a0, a1, a2, a3}其中:a0 = 上,a1 = 右,a2 = 下,a3 = 左,适用于所有状态
  • 有 4 个终结状态,分别有+1、+1、-10、+10奖励。
  • 初始状态为s6
  • 一个动作的转移概率是P,并且(1 - p) / 2移动到该动作的左侧或右侧。(例如:如果 P = 0.8,当智能体尝试向上移动时,智能体有 80% 的机会向上移动,并且有 10% 的机会向右移动,10% 向左移动。)

结果

  • VI 和 PI 算法结果,奖励 = -0.02,折扣因子 = 0.8,概率 = 0.8
  • VI在50次迭代后收敛,PI在3次迭代后收敛

vi_pi_results.png

  • QLearning 算法结果,奖励 = -0.02,折扣因子 = 0.8,学习率 = 0.1,Epsilon(用于探索)= 0.1
  • QLearning 结果图像上的结果效用是每个状态的最大 Q(s, a) 对。

qLearning_1million_10million_iterations_results.png

此外,我还注意到,当 QLearning 进行 100 万次迭代时,距离 +10 奖励终端同样远的状态具有相同的效用。代理似乎并不关心它是否从接近 -10 终端的路径获得奖励,而代理在 VI 和 PI 算法上关心它。这是因为在 QLearning 中,我们不知道环境的转移概率吗?

4

1 回答 1

1

如果状态和动作空间是有限的,就像您的问题一样,当转换的数量接近无穷大并且在以下条件下,Q-learning算法应该渐近收敛到最优效用(又名Q-function ):

在此处输入图像描述,

其中n是转换次数,a是学习率。这种情况需要随着学习的进行更新您的学习率。一个典型的选择是使用a_n = 1/n. 然而,在实践中,学习率计划可能需要根据问题进行一些调整。

另一方面,另一个收敛条件包括无限更新所有状态-动作对(在渐近意义上)。这可以简单地通过保持大于零的勘探率来实现。

因此,在您的情况下,您需要降低学习率。

于 2017-12-29T09:23:47.263 回答