我有一个有4个对象的环境。可以选择所有这些对象,也可以不选择。因此,我的DQN所采取的行动应该类似于- [1,0,1,1],[0,0,0,1],[1,1,0,0]
...etc。
其中1表示对象被选中,0表示对象未被选中。作为DQN输入的环境状态由每个对象的属性和环境的其他因素组成。DQN将根据它所做的选择获得奖励。我刚开始强化学习,我只构建了DQN,它需要从整个动作空间中选择一个动作。但是如何为这个特定的环境构建一个DQN或强化学习网络呢?
发布于 2020-05-22 14:56:08
DQN代理不需要关心操作代表什么,在您的情况下,它只需要进行离散的选择,并且简单地枚举操作空间。暂时忽略它们的意义,你有16个离散的动作。最简单的建模方法是为代理创建一个由16个动作组成的单一索引离散操作空间,然后将其映射到评估结果所需的选择。只要您始终如一地这样做(例如,使用动作索引号的二进制表示),这是很好的。
根据价值函数的真实性质,使用更直接的表示也可能有所帮助。在这种情况下,您可以使用它,前提是您为的神经网络建模,将动作向量连接到输入中的状态向量,并为该特定组合提供估计动作值的单个输出。要评估要采取的操作,您将创建一个由16个输入组成的小型批处理,所有这些输入都具有相同的状态组件,并涵盖16个可能的输入变体。然后,您将选择具有最高估计值的组合,并查看输入向量的动作部分,以发现哪些操作被估计为最佳。
如果你不确定哪种方法最适合这个问题,你可以两者都尝试。
https://datascience.stackexchange.com/questions/74673
复制相似问题