Algorithm 何时使用某种强化学习算法?

Algorithm 何时使用某种强化学习算法?,algorithm,machine-learning,artificial-intelligence,markov-chains,reinforcement-learning,Algorithm,Machine Learning,Artificial Intelligence,Markov Chains,Reinforcement Learning,我正在学习强化学习,读萨顿的书作为大学课程。除了经典的PD、MC、TD和Q-学习算法外,我还阅读了用于解决决策问题的策略梯度方法和遗传算法。 我以前从未有过这方面的经验,我在理解什么时候一种技术应该优于另一种技术时遇到了问题。我有一些想法,但我不确定。有人能简要地解释一下或告诉我一个来源,在那里我可以找到一些关于应该使用某种方法的典型情况的信息吗?据我所知: 动态规划和线性规划应该只在MDP只有很少的动作和状态,并且模型是已知的情况下使用,因为它非常昂贵。但什么时候DP比LP好 当我没有问题的

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

  • 动态规划和线性规划应该只在MDP只有很少的动作和状态,并且模型是已知的情况下使用,因为它非常昂贵。但什么时候DP比LP好
  • 当我没有问题的模型,但我可以生成样本时,使用蒙特卡罗方法。它没有偏差,但有很高的方差
  • 当MC方法需要太多样本而方差较低时,应使用时间差分方法。但是我什么时候应该使用TD和Q-Learning
  • 策略梯度和遗传算法适用于连续MDP。但是当一个比另一个好的时候
更准确地说,我认为,要选择一种学习方法,程序员应该问自己以下问题:

  • 代理是在线学习还是离线学习
  • 我们能把探索和开发阶段分开吗
  • 我们能进行足够的探索吗
  • MDP的视界是有限的还是无限的
  • 国家和行动是连续的吗
但我不知道这些问题的细节如何影响学习方法的选择。 我希望一些程序员已经对RL方法有了一些经验,可以帮助我更好地理解它们的应用。

简单地说:

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

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

我们能进行足够的探索吗?根据问题的定义,可以决定探索的程度。例如,如果内存中有问题的模拟模型,则可以根据需要进行探索。但真正的探索只限于你拥有的资源量。(如能量、时间等)


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

对于离线情况下的Q-学习,我不同意。Q-Learning可以很容易地在网上完成,而且从我所看到的情况来看,它与在线案例融合得非常好。我没有明确表示SARSA不是在线的,因为我在评论中没有提到SARSA。我只是说Q-learning可以在这两种情况下使用。SARSA是策略算法的一个例子。当您希望在了解策略的同时控制系统时,这种算法是最佳选择。关于Q-learning,我必须提到,当我们说Q-learning时,我们指的是Watkins提出的算法的原始版本(如果我没有错的话,1997年),虽然Q-learning有许多修改版本可供使用。联机与脱机您指的是打开策略与关闭策略。@mimoralea联机和脱机与打开和关闭策略不同(我只是想纠正这个错误,以防sombody偶然发现这篇文章):在线更新是在运行一集时执行的,通常在每一步之后执行,而离线更新是在该集终止且已知全部奖励后执行的(无引导)。另一方面,On policy update指对用于采样的策略进行的更新。非策略更新使用某些技术(重要性抽样、v跟踪)使用其他轮询的转出更新策略。