关于Sutton《强化学习》中Monte Carlo ES伪代码执行时机的疑问
Monte Carlo ES伪代码缩进疑问解答
你观察得很精准,结合Sutton在《Reinforcement Learning》中的文字描述,策略评估与策略改进步骤确实应该放在每个回合结束后执行,而非回合内的每一步。
书中明确提到:
对于Monte Carlo策略迭代,合理的做法是在每个回合(episode)间交替进行策略评估与改进。每个回合结束后,利用观测到的回报执行策略评估,再对该回合中访问过的所有状态进行策略改进。
如果伪代码里最后两行是缩进在回合的每一步循环内,就和这段文字描述完全矛盾。从逻辑一致性来看,这两行应该向左缩进2格,跳出每一步的循环块,放到整个回合结束后的位置。
补充说明两种Monte Carlo变体的差异:
- 每次访问型Monte Carlo:理论上支持每一步更新状态价值,但这不符合书中“回合结束后统一处理”的核心思路;
- 首次访问型Monte Carlo(即书中Monte Carlo ES采用的类型):必须等回合结束拿到完整回报轨迹后,再对该回合访问过的状态统一执行评估与改进。
综上,按照Sutton的文字解释,伪代码的最后两行确实需要调整缩进,放到每个回合结束后执行。
内容的提问来源于stack exchange,提问作者beginner
相关产品推荐
相关产品推荐

