强化学习算法的奖励取决于先前的动作和当前的动作

人工智能 强化学习 近端策略优化 奖励设计 状态空间 马尔可夫属性
2021-10-21 06:22:24

问题描述:

假设我们有一个环境,在时间步的奖励t不仅依赖于当前动作,还依赖于先前的动作,方式如下:

  • 如果当前动作 == 上一个动作,您将获得奖励 =R(a,s)
  • 如果当前动作 != 上一个动作,您将获得奖励 =R(a,s)penalty

在这种环境下,切换动作需要付出巨大的代价。我们希望 RL 算法在切换动作代价高昂的约束下学习最优动作,即我们希望尽可能长时间地停留在选定的动作中。

惩罚明显高于即时奖励,所以如果我们不考虑它,模型评估将几乎 100% 的概率得到负的总奖励,因为代理会不断切换并从较小的环境中提取奖励比转换动作的成本。

动作空间很小(2 个动作:左、右)。我正在尝试用 PPO(近端策略优化)击败这个游戏

问题

  • 如何解决这个限制:即明确地让代理知道转换是昂贵的,即使立即奖励是负面的,也值得坐在一个动作中?

  • 如何让 RL 算法知道它不是奖励项R(at|st)这是负数,因此减少Q(at|st)V(st),但它是惩罚项(采取与前一个动作不同的动作步骤t1)这会降低总奖励吗?

2个回答

您的两个问题的答案是:

  • 将先前的操作选择添加到状态表示。

这就是您需要做的所有事情。它为代理提供所需的数据,以从不匹配先前的动作中学习负奖励的关联。

通过使这些数据成为状态的一部分,您可以在环境的 MDP 模型中重新建立马尔可夫属性,否则您会因为使奖励依赖于一个既系统变化又对代理隐藏的变量而丢失了该属性。

MDP 中的状态通常不仅仅是环境提供的当前观察结果,还可以包括代理所拥有的任何相关知识。在极端情况下,它可以包括迄今为止所采取的所有观察和行动的完整历史。将状态推导出来作为最近的观察历史和迄今为止所采取的行动的总结是一种常见的做法。在您的情况下,您需要做的就是将先前的操作连接到观察,因为您了解约束以及它如何影响优化。

如前所述,您必须在训练输入模式中包含先前的输入状态。

假设我们使用简单的 NN 反向传播学习。

您将使用连接到过去的附加神经元和权重来扩展输入层。时间窗神经元应该在第一个隐藏层中引入额外的权重。执行此操作的神经网络架构称为时间延迟神经网络 (TDNN)

https://stats.stackexchange.com/questions/160070/difference-between-time-delayed-neural-networks-and-recurrent-neural-networks

我过去使用 TDNN 进行信号处理。我的 TDNN 包括过去的 N 个输入,支持过去的 M 个步骤。一个灵活的 TDNN 也可以配置为将一些隐藏层过去的输出连接到下一个隐藏层。

https://neuron.eng.wayne.edu/tarek/MITbook/chap5/5_4.html

https://www.mathworks.com/help/deeplearning/ref/timedelaynet.html