2

在Q-learning期间更新 R(s) 函数的适当方法是什么?例如,假设一个代理访问状态 s1 五次,并获得奖励 [0,0,1,1,0]。我应该计算平均奖励,例如 R(s1) = sum([0,0,1,1,0])/5?或者我应该使用一个移动平均线来赋予该州最近收到的奖励值更大的权重?我读过的大多数关于 Q 学习的描述都将 R(s) 视为某种常数,并且似乎从未涵盖随着经验的积累,随着时间的推移如何学习这个值。

编辑:我可能将 Q-Learning 中的 R(s) 与Markov Decision Process中的 R(s,s') 混淆了。问题仍然相似。在学习 MDP 时,更新 R(s,s') 的最佳方法是什么?

4

2 回答 2

1

Q-Learning 在贪心策略下保持每个状态的动作值的运行平均值。它根据每对步骤的奖励计算这些值。贪婪策略下的状态值等于最佳动作的值。Q-Learning 的规范描述在Reinforcement Learning: An Introduction中给出。

没有“最佳”的更新方式,但 SARSA 是一个很好的默认值。SARSA 类似于 Q-Learning,只是它学习的是它遵循的策略,而不是贪婪策略。

于 2011-07-17T23:29:41.943 回答
1

在标准的无模型 RL(如 Q-learning)中,您不需要学习奖励函数。你学到的是价值函数或q值函数。奖励是通过与环境交互获得的,您可以估计状态-动作对随着时间的推移(折扣)累积奖励的预期值。

如果您使用基于模型的方法,情况就不同了,您尝试学习环境模型,即:转换和奖励函数。但这不是 Q 学习的情况。

于 2016-02-26T14:11:42.043 回答