MDP与强化学习——VI、PI、Q学习算法的收敛性比较
MDP & Reinforcement Learning - Convergence Comparison of VI, PI and QLearning Algorithms
我已经使用 python 实现了 VI(值迭代)、PI(策略迭代)和 QLearning 算法。比较结果后,我注意到了一些事情。 VI 和 PI 算法收敛到相同的实用程序和策略。 使用相同的参数,QLearning 算法收敛到不同的实用程序,但与 VI 和 PI 算法的策略相同。这正常吗?我读了很多关于 MDP 和 RL 的论文和书籍,但找不到任何东西来说明 VI-PI 算法的实用程序是否应该收敛到与 QLearning 相同的实用程序。
以下信息是关于我的网格世界和结果的。
我的网格世界
grid_world.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奖励终端同样远的状态具有相同的效用。 Agent 似乎并不关心它是否会从靠近 -10 终端的路径获得奖励,而 Agent 在 VI 和 PI 算法上关心它。 这是不是因为在QLearning中,我们不知道环境的转移概率?
如果状态和动作空间是有限的,就像您的问题一样,Q-learning
算法应该渐近收敛到最优 效用 (又名, Q-function),当跃迁次数趋近于无穷大且满足以下条件时:
,
其中 n
是转换次数,a
是学习率。
这种情况需要随着学习的进展更新你的学习率。一个典型的选择是使用 a_n = 1/n
。但是,在实践中,学习率计划可能需要根据问题进行一些调整。
另一方面,另一个收敛条件在于无限更新所有状态-动作对(在渐近意义上)。这可以简单地通过保持大于零的探索率来实现。
因此,对于您的情况,您需要降低学习率。
我已经使用 python 实现了 VI(值迭代)、PI(策略迭代)和 QLearning 算法。比较结果后,我注意到了一些事情。 VI 和 PI 算法收敛到相同的实用程序和策略。 使用相同的参数,QLearning 算法收敛到不同的实用程序,但与 VI 和 PI 算法的策略相同。这正常吗?我读了很多关于 MDP 和 RL 的论文和书籍,但找不到任何东西来说明 VI-PI 算法的实用程序是否应该收敛到与 QLearning 相同的实用程序。
以下信息是关于我的网格世界和结果的。
我的网格世界
grid_world.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奖励终端同样远的状态具有相同的效用。 Agent 似乎并不关心它是否会从靠近 -10 终端的路径获得奖励,而 Agent 在 VI 和 PI 算法上关心它。 这是不是因为在QLearning中,我们不知道环境的转移概率?
如果状态和动作空间是有限的,就像您的问题一样,Q-learning
算法应该渐近收敛到最优 效用 (又名, Q-function),当跃迁次数趋近于无穷大且满足以下条件时:
其中 n
是转换次数,a
是学习率。
这种情况需要随着学习的进展更新你的学习率。一个典型的选择是使用 a_n = 1/n
。但是,在实践中,学习率计划可能需要根据问题进行一些调整。
另一方面,另一个收敛条件在于无限更新所有状态-动作对(在渐近意义上)。这可以简单地通过保持大于零的探索率来实现。
因此,对于您的情况,您需要降低学习率。