直观地说,采取行动有什么意义一个'A′当环境已经结束?

人工智能 强化学习 萨尔萨
2021-11-17 10:20:40

SARSA 的更新方程为Q(S,A)=R+γQ(S,A). 考虑一下:我采取行动A这导致了终端状态。现在我的S将是终端状态之一。所以...

  1. 直观地说,采取行动有什么意义A当环境已经结束?或者这是你刚刚做的事情?

  2. 一旦达到一个终端状态-动作对,您就更新之前的状态-动作对,然后重新开始游戏循环。但这意味着终端状态-动作对 (Q(S,A)在我的例子中)永远不会更新。所以,如果你的初步估计Q(S,A)错了,您将永远无法修复它,这将是非常有问题的。(并且您不能将所有终端值设置为零,因为您使用的是函数逼近器)

那么,我该如何解决这些问题呢?

1个回答
  1. 直观地说,当环境已经结束时,采取行动 A' 有什么意义?

这是没有意义的,因为一旦代理达到终端状态,什么都不会发生。但是,它通常被建模为“吸收状态”,其中动作不重要(null或忽略值),其价值定义为0.

而且您不能将所有终端值设置为零,因为您使用的是函数逼近器

根据定义,该值为零。没有必要对其进行近似。因此,不要将函数逼近器用于终止状态中的动作值。什么时候S是终端,更新变为:

Q(S,A)Q(S,A)+α(RQ(S,A))

查看 Q 学习的任何实现,您将看到更新值的条件计算,它使用上述逻辑的一些变体,当S是终端。例如,对于 OpenAI Gym 环境,它将使用done标志。