首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么时候使用某种强化学习算法?

什么时候使用某种强化学习算法?
EN

Stack Overflow用户
提问于 2014-03-29 05:53:48
回答 1查看 3.8K关注 0票数 23

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

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

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

  • 是在线学习还是离线学习?
  • 我们能否将探索和利用阶段分开?
  • 我们能否在MDP有限或连续状态和操作的范围内执行足够的操作?

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

EN

回答 1

Stack Overflow用户

发布于 2014-04-09 20:27:26

简要地说:

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

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

我们能进行足够的探索吗?探索的程度可以根据问题的定义来决定。例如,如果您的内存中有一个问题的模拟模型,那么您可以根据需要进行探索。但真正的探索受到你所拥有的资源数量的限制。(例如,能量,时间,...)

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22723830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档