首页 文章

用一对动作强化学习

提问于
浏览
1

我正在学习python中的强化学习并接受了一些训练,其中大部分都处理简单的动作(如向上,向下,向右或向左),所以基本上一次只有一个动作 . 在我的项目中,我有不同的动作:它有一对动作,意味着除了在这个动作中采取的偏移之外的动作......就像(动作类型,偏移已被采取) . 例如,动作类型有:u1_set,u1_clear,u2_set,u2_clear,u3_set,u3_clear . 并且在每个动作上,都存在与此实现的动作相关联的衰减偏移(偏移量为-1,-0.5,0,0.5,1),因此某些动作对的示例将类似于(u2_set,1),(u2_clear, - 0.5),...等等 .

想知道在这种情况下实施强化学习的最佳方法是什么(一对动作和偏移)以及是否有一个可以在线分享的好例子 .

提前致谢 .

1 回答

  • 1

    到目前为止,最简单的方法是简单地将每一对"sub-actions"视为一个完整的动作 . 因此,在您的示例中,每个操作都是一对 (U, Offset) ,其中 U{u1_set, u1_clear, u2_set, u2_clear, u3_est, u3_clear} 之一, Offset{-1, -0.5, 0, +0.5, +1} 之一 . 在这个例子中,总共有 6 x 5 = 30 个可能的对,所以 30 有不同的动作 . 对于大多数RL方法来说,这应该是完美的 .

    如果您继续处理更复杂的情况(太多可能的对),您也可以开始考虑更复杂的解决方案 . 例如,您可以将选择操作类型的问题视为第一个RL问题,然后选择偏移作为额外的单独RL问题(可能还包含已包含已选择的操作的增强状态表示)的问题类型) .

    或者,如果您继续使用神经网络进行强化学习,您可以简单地将两个单独的“头”作为输出层,两者都连接到相同的架构 .

    我怀疑最后两段可能是不必要的复杂,特别是如果你刚开始学习RL,第一段可能就好了 .

相关问题