为什么在首次访问 MC 控件中使用所有返回的平均值来更新值?

人工智能 强化学习 蒙特卡罗方法 萨顿巴托
2021-10-19 13:33:54

在 Sutton & Barto 的Reinforcement Learning: An Introduction中,在第 83 页(pdf 的 101)中,有对首次访问 MC 控制的描述。在他们更新的阶段Q(s,a), 他们对所有回报进行平均G对于那个状态-动作对。

他们为什么不只是用前几集的值的权重来更新值α和一个重量1α像在 TD-Learning 中那样返回新剧集?

我还看过其他书籍(例如,RL 算法(第 22 页),他们使用α. 有什么区别?

1个回答

他们为什么不只是用前几集的值的权重来更新值α和一个重量1α像在 TD-Learning 中那样返回新剧集?

在我看来,这是书中的一个错误。我回去检查了一下,这在完成的第二版中仍然是一样的,它仍然存在。

保持所有回报并取平均值在具有固定策略的预测场景中工作得很好,并且解释为“这是平均值”更简单和更直观(效率可以在理解之后出现)。但是,对于较旧的回报(您仍然在列表中引用)不会反映当前政策的控制场景,伪代码是不正确的,因此会有偏差。

在实践中,没有人真正使用书面的 MC 控制算法。几乎总是一个学习率参数,α用于更新估计。

有什么区别?

要评估固定策略的预测场景中,为每个策略使用样本计数会稍微高效一些s,a对和变量α=1N(s,a)这在数学上与保留列表并根据需要取平均值相同。

在使用旧返回值列表的控制场景中,不仅内存效率低,而且样本效率低,因为您需要每个改进策略的样本数量超过旧样本,以消除由于使用初始较差策略的返回而导致的抽样偏差. 一个固定的或缓慢衰减的α是一种简单而有效的“忘记”旧返回值的方法,因为它们与任务的相关性越来越低。

实现类似遗忘的另一种方法可能是为每个Returns(s,a)列表。然而,这在 MC Control 伪代码中并未提及。

也许我遗漏了一些东西,因为这本书已经通过了重要的审查过程。然而,这个细节可能被忽略了,因为基本的MC 控制场景并不像所有与 TD 的扩展和组合一样有趣,你会发现这本书确实使用了学习率α- 包括在制作 MC 与 TD 方法等的比较图表时。明确的回报列表和对它们进行平均以进行控制仅出现在此伪代码文本中的几个地方,并且不再提及。