23

我正在学习强化学习并阅读萨顿的大学课程书。除了经典的 PD、MC、TD 和 Q-Learning 算法之外,我还在阅读用于解决决策问题的策略梯度方法和遗传算法。我以前从未有过这个主题的经验,而且我在理解什么时候应该优先选择一种技术时遇到了问题。我有一些想法,但我不确定。有人可以简要解释或告诉我一个来源,我可以在哪里找到关于应该使用某种方法的典型情况的信息?据我所理解:

  • 只有当 MDP 的动作和状态很少并且模型已知时,才应该使用动态规划和线性规划,因为它非常昂贵。但是什么时候DP比LP好?
  • 当我没有问题的模型但我可以生成样本时使用蒙特卡洛方法。它没有偏差,但具有高方差。
  • 当 MC 方法需要太多样本以具有低方差时,应使用 Temporal Difference 方法。但是什么时候应该使用 TD,什么时候应该使用 Q-Learning?
  • 策略梯度和遗传算法适用于连续 MDP。但是什么时候一个比另一个更好呢?

更准确地说,我认为程序员在选择学习方法时应该问自己以下问题:

  • 代理是在线学习还是离线学习?
  • 我们可以分开探索和开发阶段吗?
  • 我们可以进行足够的探索吗?
  • MDP 的视界是有限的还是无限的?
  • 状态和动作是连续的吗?

但我不知道问题的这些细节如何影响学习方法的选择。我希望一些程序员已经对 RL 方法有一些经验,并且可以帮助我更好地理解他们的应用程序。

4

1 回答 1

7

简要地:

代理是在线学习还是离线学习?帮助您决定使用在线或离线算法。(例如在线:SARSA,离线:Q-learning)。在线方法有更多的局限性,需要更多的注意。

我们可以分开探索和开发阶段吗?这两个阶段通常处于平衡状态。例如,在 epsilon-greedy 动作选择中,您使用 (epsilon) 概率进行利用,使用 (1-epsilon) 概率进行探索。您可以将这两者分开并要求算法首先探索(例如选择随机动作)然后利用。但是当您离线学习并且可能使用系统动力学模型时,这种情况是可能的。这通常意味着提前收集大量样本数据。

我们可以进行足够的探索吗?可以根据问题的定义来决定探索的级别。例如,如果您在内存中有问题的仿真模型,那么您可以随意探索。但真正的探索仅限于您拥有的资源数量。(例如能量、时间、...)

状态和动作是连续的吗?考虑这个假设有助于选择正确的方法(算法)。有为 RL 开发的离散和连续算法。一些“连续”算法在内部离散状态或动作空间。

于 2014-04-09T12:27:25.980 回答