何时使用某种强化学习算法?
artificial-intelligence
machine-learning
4
0

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

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

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

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

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

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

简要地:

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

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

我们可以进行足够的探索吗?可以根据问题的定义来确定探索的级别。例如,如果您在内存中具有问题的模拟模型,则可以根据需要进行探索。但是,真正的探索仅限于您拥有的资源量。 (例如能量,时间等)

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

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号