在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')的最佳方法是什么?
发布于 2011-07-18 07:29:42
Q-Learning在贪婪策略下保持每个状态的动作值的运行平均值。它根据每一对步骤的奖励来计算这些值。贪婪策略下的状态值等于最佳行动的值。Q-学习的规范描述在Reinforcement Learning: An Introduction中给出。
没有“最好”的更新方法,但SARSA是一个很好的默认方法。SARSA类似于Q-Learning,除了它学习它遵循的策略,而不是贪婪的策略。
发布于 2016-02-26 22:11:42
在标准的无模型RL (如Q学习)中,您不会学习奖励函数。你所学到的是值函数或Q值函数。奖励是通过与环境交互来获得的,您可以估计状态-动作对随着时间的推移累积奖励的期望值(折扣)。
如果你使用基于模型的方法,这是不同的,你试图学习环境的模型,即:转换和奖励函数。但这不是Q学习的情况。
https://stackoverflow.com/questions/6726055
复制相似问题