因此,在Q学习中,您可以通过Qnew(s,a) = Q(s,a) + alpha(r +γ*MaxQ(s‘,a) - Q(s,a) )来更新Q函数。
现在,如果我使用相同的原理,但将Q更改为V函数,而不是基于当前V函数执行操作,您实际上执行所有操作(假设您可以重置模拟环境),并从这些操作中选择最好的操作,并为该状态更新V函数。这会产生更好的结果吗?
当然,训练时间可能会增加,因为您实际上为每次更新都做了一次所有操作,但由于保证每次都选择最佳操作(探索时除外),它最终会为您提供一个全局最优策略?
这有点类似于值迭代,除了我没有也没有为这个问题构建模型。
发布于 2018-06-08 16:18:42
现在,如果我使用相同的原理,但将Q更改为V函数,而不是基于当前的V函数执行操作,您将实际执行所有操作(假设您可以重置模拟环境),并从中选择最好的操作,并为该状态更新V函数。这会产生更好的结果吗?
在强化学习中,通常假设我们没有重置(模拟)环境的能力。当然,当我们在模拟上工作时,通常在技术上可能是可能的,但通常我们希望RL的工作也可以扩展到模拟之外的“真实世界”问题,在那里这将不再可能。
如果你确实有这种可能性,通常会建议你研究像蒙特卡洛树搜索这样的搜索算法,而不是像Sarsa,Q-learning等强化学习。我怀疑在这种情况下,你的建议可能比Q-learning稍微好一点,但像MCTS这样的东西会更好。
发布于 2018-06-09 07:22:45
现在,如果我使用相同的原理,但将Q函数更改为V函数,而不是基于当前的V函数执行操作,您将实际执行所有操作(假设您可以重置模拟环境),并从中选择最好的操作,并为该状态更新V函数。
。这会产生更好的结果吗?
考虑到您没有访问模型的权限,您必须求助于无模型方法。你所建议的基本上是一个动态编程备份。有关迭代value函数的各种备份策略,请参阅David Silver的lecture notes中的幻灯片28 - 31。
但是,请注意,这仅适用于预测(即,估计给定策略的值函数),而不适用于控制(找出最佳策略)。不会有Max参与预测。为了进行控制,您可以使用上述策略评估+贪婪策略改进,得出“基于动态程序备份策略评估的策略迭代”方法。
model-free control的其他选项是SARSA + greedy policy improvement和Q-learning (离策略)。不过,这些都是基于Q函数的方法。
如果你只是想赢得比赛,而不一定对上面讨论的RL技术感兴趣,那么你也可以选择使用纯粹基于规划的方法(如Monte Carlo Tree Search)。最后,您可以使用Dyna等方法进行combine planning and learning。
https://stackoverflow.com/questions/50754048
复制相似问题