你好,堆栈溢出社区!
目前,我正在关注David Silver的强化学习讲座,在他的“无模型控制”幻灯片中,我真的感到困惑。
在幻灯片中,Q-Learning被认为是非策略学习。我不知道这背后的原因。他还提到,我们有目标和行为政策。Q-Learning中行为策略的作用是什么?
当我查看算法时,它看起来非常简单,就像通过使用最大Q(s',a')函数来更新Q(s,a)估计值。在幻灯片中,它被称为“我们使用行为策略选择下一个操作”,但在这里我们只选择最大的一个。
我对Q-Learning算法感到非常困惑。你能帮帮我吗?
幻灯片链接(第36-38页):http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/control.pdf
发布于 2018-12-11 15:21:43
首先检查此答案https://stats.stackexchange.com/a/184794

据我所知,目标策略是我们设定的策略,它可以是贪婪的或其他的。但是在行为策略中,我们只是使用贪婪策略来选择动作,甚至没有考虑我们的目标策略是什么,所以它估计了我们的Q假设贪婪策略被遵循,尽管它没有遵循贪婪策略。
发布于 2018-12-14 00:28:35
理想情况下,您希望学习真正的Q函数,即满足Bellman方程的Q函数
Q(s,a) = R(s,a) + gamma*E[Q(s',a')] forall s,a当期望超过a' w.r.t策略时。
首先,我们近似问题并去掉"forall“,因为我们只能访问很少的样本(特别是在连续操作中,"forall”导致无限多的约束)。其次,假设您想要学习一个确定性策略(如果存在最优策略,则存在确定性最优策略)。然后,期望就消失了,但你需要以某种方式收集样本。这就是“行为”策略的用武之地,它通常只是您想要优化的策略的一个嘈杂版本(最常见的是e-greedy,或者如果操作是连续的,则添加高斯噪声)。
因此,现在您有了从行为策略和目标策略(确定性)收集的样本,您希望对其进行优化。得到的方程式是
Q(s,a) = R(s,a) + gamma*Q(s',pi(s'))两端之间的差异是TD误差,您希望在给定从行为策略收集的样本的情况下将其最小化
min E[R(s,a) + gamma*Q(s',pi(s')) - Q(s,a)] 其中,期望与使用行为策略收集的样本(s,a,s')近似。
如果我们考虑索罗斯的伪码,如果动作是离散的,那么pi(s') = max_A Q(s',A)和更新规则是TD(0)误差的导数。
下面是一些很好的易读物,可以帮助您更多地了解TD:1、2、3、4。
编辑
只是为了强调政策上和政策外的区别。SARSA是开策略的,因为更新策略的TD错误是
min E[R(s,a) + gamma*Q(s',a') - Q(s,a)] a'是在使用行为策略采样数据时收集的操作,它不是pi(s') (目标策略将在状态s'中选择的操作)。
发布于 2021-01-21 07:37:35
@Soroush的答案只有在交换红色文本时才是正确的。离策略学习是指您尝试使用从另一个或多个策略中采样的轨迹来学习最佳策略$\pi$。这意味着$\pi$不用于生成在环境中执行的实际操作。由于A是$\epsilon$-greedy算法执行的操作,因此它不是来自$\pi$ (目标策略),而是另一个策略(行为策略,因此得名为" behavior ")。
https://stackoverflow.com/questions/53710308
复制相似问题