我正在学习强化学习并阅读萨顿的大学课程书。除了经典的 PD、MC、TD 和 Q-Learning 算法之外,我还在阅读用于解决决策问题的策略梯度方法和遗传算法。我以前从未有过这个主题的经验,而且我在理解什么时候应该优先选择一种技术时遇到了问题。我有一些想法,但我不确定。有人可以简要解释或告诉我一个来源,我可以在哪里找到关于应该使用某种方法的典型情况的信息?据我所理解:
- 只有当 MDP 的动作和状态很少并且模型已知时,才应该使用动态规划和线性规划,因为它非常昂贵。但是什么时候DP比LP好?
- 当我没有问题的模型但我可以生成样本时使用蒙特卡洛方法。它没有偏差,但具有高方差。
- 当 MC 方法需要太多样本以具有低方差时,应使用 Temporal Difference 方法。但是什么时候应该使用 TD,什么时候应该使用 Q-Learning?
- 策略梯度和遗传算法适用于连续 MDP。但是什么时候一个比另一个更好呢?
更准确地说,我认为程序员在选择学习方法时应该问自己以下问题:
- 代理是在线学习还是离线学习?
- 我们可以分开探索和开发阶段吗?
- 我们可以进行足够的探索吗?
- MDP 的视界是有限的还是无限的?
- 状态和动作是连续的吗?
但我不知道问题的这些细节如何影响学习方法的选择。我希望一些程序员已经对 RL 方法有一些经验,并且可以帮助我更好地理解他们的应用程序。