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

Sim*_*mon 22 algorithm artificial-intelligence machine-learning markov-chains reinforcement-learning

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

  • 仅当MDP具有很少的动作和状态并且模型已知时才应使用动态编程和线性编程,因为它非常昂贵.但是当DP比LP好?
  • 当我没有问题模型但我可以生成样本时使用蒙特卡罗方法.它没有偏见,但有很大的差异.
  • 当MC方法需要太多样本以具有低方差时,应使用时间差异方法.但是什么时候我应该使用TD和Q-Learning?
  • Policy Gradient和Genetic算法适用于连续MDP.但是当一个比另一个更好?

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

  • 代理人在线或离线学习吗?
  • 我们可以分开探索和开发阶段吗?
  • 我们可以进行足够的探索吗
  • MDP的地平线是有限的还是无限的?
  • 国家和行动是否连续?

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

NKN*_*NKN 6

简述:

代理人在线或离线学习吗?帮助您决定使用在线还是离线算法.(例如,在线:SARSA,离线:Q-learning).在线方法有更多限制,需要更多关注薪酬.

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

我们可以进行足够的探索吗 探索水平可以根据问题的定义来决定.例如,如果您在内存中有问题的模拟模型,那么您可以根据需要进行探索.但真正的探索仅限于你拥有的资源量.(例如能量,时间......)

国家和行动是否连续?考虑这个假设有助于选择正确的方法(算法).有针对RL开发的离散和连续算法.一些"连续"算法在内部离散状态或动作空间.

  • 关于离线案件的Q-Learning,我不得不提出异议.Q-Learning可以很容易地在线完成,从我看到的情况来看,它非常适合在线案例. (3认同)
  • 在线与离线,你的意思是在政策与离政策。 (2认同)