如何在强化学习中实现受限的行动空间?


13

多亏了在Tensorflow之上构建的非常好的Tensorforce库,我正在使用PPO代理编写增强学习模型。

第一个版本非常简单,我现在正进入一个更复杂的环境,在该环境中,每个步骤都不提供所有操作。

假设有5个动作,它们的可用性取决于内部状态(由上一个动作和/或新的状态/观察空间定义):

  • 2个动作(0和1)始终可用
  • 仅当internal_state == 0时,才有2个动作(2和3)可用
  • 1动作(4)仅在internal_state == 1时可用

因此,当internal_state == 0时有4个动作可用,而internal_state == 1时有3个动作可用。

我正在考虑实现该目标的几种可能性:

  1. 根据internal_state,在每一步更改操作空间。我认为这是胡说八道。
  2. 不执行任何操作:让模型了解选择不可用的操作没有影响。
  3. 几乎不执行任何操作:当模型选择不可用的操作时,会对奖励产生轻微的负面影响。
  4. 帮助模型:通过将整数合并到状态/观察空间中,通知模型什么是internal_state值+项目符号点2或3

还有其他方法可以实现吗?根据您的经验,哪一个最好?

Answers:


5

最直接的解决方案是简单地使每个动作“合法”,但实现从潜在的非法动作到不同法律动作的一致,确定性映射。只要您使用的PPO实施选择了一项非法行动,您只需将其替换为映射到的合法行动即可。然后,您的PPO算法仍然可以更新自身,就好像选择了非法操作一样(非法操作就变成了……合法诉讼的“昵称”)。

例如,在这种情况下,您描述:

  • 2个动作(0和1)始终可用
  • 仅当internal_state == 0时,才有2个动作(2和3)可用
  • 1动作(4)仅在internal_state == 1时可用

在选择的情况下internal_state == 0,如果您4选择了一项操作(非法操作),则可以随时将其换成其他一项操作,然后再播放。(从理论上)选择哪一个并不重要,只要您对此保持一致即可。该算法不必知道自己选择了非法行为,以后只要它再次在相似的状态下再次选择相同的非法行为,它就会始终映射到相同的合法行为,因此您只需根据该行为进行强化即可。


01


对于第一个“解决方案”,我在上面写道,“从理论上来说”如何选择映射并不重要。我绝对希望您的选择会在实践中影响学习速度。这是因为,在学习过程的初始阶段,您可能会选择接近随机的动作。如果某些动作在输出中“多次出现”,则使用初始的“闭合规则”动作选择它们的可能性更大。因此,这将影响您的最初行为,从而影响您所收集的体验,进而影响您所学的知识。

我当然希望,如果您可以为internal_state变量包括输入功能,则对性能会有所帮助。

如果可以识别出某种方式在某种程度上“某种程度上”接近某些违法行为,则将性能与“映射”中的那些“类似”行为从违法行为特别是法律行为联系起来也可能对绩效有好处。该解决方案。例如,如果您有一个“跳进”操作在最高限额较低的州(因为您会撞到头)而变得违法,那么最好将该操作映射到“向前移动”操作(还是有点相似,他们都在前进),而不是将其映射到“后退”动作。这种“相似”动作的想法仅适用于某些领域,尽管在某些领域中,动作之间可能没有这种相似性。


2

目的是使用Tensorforce之类的框架设计一种近端策略优化组件,该组件对依赖于状态驱动规则的操作空间具有特定约束。

问题中列出的设计选项

此处列出了这些选项,以便在阅读下面的初始分析时快速参考。

  • 根据internal_state,在每一步更改操作空间。我认为这是胡说八道。
  • 不执行任何操作:让模型了解选择不可用的操作没有影响。
  • 几乎不执行任何操作:当模型选择不可用的操作时,会对奖励产生轻微的负面影响。
  • 帮助模型:通过将整数合并到状态/观察空间中,通知模型什么是internal_state值+项目符号点2或3

初步分析

确实,为每个动作更改动作空间是明智的。实际上,这就是对上述问题的正确表示,以及人们在Chess and Go中玩游戏的正常方式以及计算机击败人的方式。

这种想法的表面上毫无意义,只是Tensorforce项目路线图上的进展和加固理论上的进展的产物,两者在更大的范围内都很年轻。阅读Tensorforce文档和FAQ,似乎该框架并非旨在插入规则引擎来确定操作空间。这不是开源的缺点。似乎没有任何论文为规则条件马尔可夫链决策提供理论或提出算法。

不采取行动的选择是适合文献中当前可用策略的选择。几乎不做任何事情的方法可能会产生更可靠甚至更直接的理想行为。

帮助模型的概念的问题在于,它与扩展模型相比没有一个强大的想法。在开放源代码中,这将通过扩展表示模型的类来完成,在编码为

    a. Represent rule-conditioned learning in nomenclature
    b. Represent convergence mathematically using the new nomenclature
    c. Determining a method of convergence
    d. Proving convergence
    e. Rechecking
    f. Defining a smooth and efficient algorithm
    g. Providing PAC learning information for planning
    f. Peer review
    g. Extending the classes of the library
    h. Proof of concept with the current problem above
    i. Additional cases and metrics comparing the approach with the others
    j. Extending the library flexibility to support more such dev

学习系统的扩展以涵盖规则约束的情况对于博士论文是一个好主意,并且可能作为一个具有许多可能应用的项目建议而飞入研究实验室。不要让所有步骤都劝阻研究人员。从本质上讲,它们是任何博士学位论文或获资助的AI实验室项目的步骤列表。

对于短期解决方案,帮助模型可能会起作用,但这不是沿着强化学习道路推进AI理念的合理策略。作为特定问题的短期解决方案,它可能会正常工作。“几乎不做任何事”的想法可能更合理,因为它适合于导致Tensorforce可能使用的特定实现的融合证明。

将其从“几乎不做”重命名为“辅助融合”可能有助于在尝试之前建立正确的观点。您可能会发现,随着趋近收敛,您必须减弱辅助功能,以避免像学习率一样过冲。


3
例如,在AlphaGo中,通常发生的情况是神经网络中的低级表示表示非常大的动作空间,在当前状态下大多数动作空间是不可能的(由于输出固定大小矢量的简单NN的限制,所以这样做是不可能的。 )。然后,代码的另一部分将应用过滤器,以仅针对允许的移动选择并归一化概率。组合的NN和过滤器是代理的一部分。因此,可以公平地说,整个代理商将“为每一步改变行动空间”-我不知道如何在Tensorforce库中实现这一目标。
尼尔·斯莱特

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.