Hello Stack溢出社区!
目前,我正在关注David Silver的“强化学习”讲座,并在他的“无模型控制”幻灯片中确实感到困惑。
在幻灯片中,Q学习被视为非政策学习。我不知道背后的原因。他还提到我们既有目标政策又有行为政策。行为策略在Q-Learning中的作用是什么?
当我查看该算法时,它看起来非常简单,就像使用最大Q(s',a')函数更新您的Q(s,a)估算值一样。在幻灯片中,它被称为“我们使用行为策略选择下一个动作”,但在这里我们仅选择最大动作。
我对Q学习算法感到困惑。你能帮我吗?
幻灯片的链接(第36-38页): http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/control.pdf
答案 0 :(得分:1)
先检查此答案https://stats.stackexchange.com/a/184794
据我所知,目标政策是我们设定为政策的目标,可能是epsilon-greedy或其他。但是在行为策略中,我们只是使用贪婪策略来选择操作,甚至不考虑目标策略是什么。因此,尽管遵循了贪婪策略,但事实并非如此,因此它估计了我们的Q。
答案 1 :(得分:1)
理想情况下,您想学习真正的Q函数,即满足Bellman方程的函数。
Q(s,a) = R(s,a) + gamma*E[Q(s',a')] forall s,a
在政策中期望值超过a'
的地方。
首先,我们对问题进行近似处理并消除“ forall”,因为我们只能访问很少的样本(尤其是在连续动作中,“ forall”会导致无限多个约束)。其次,假设您要学习确定性策略(如果存在最优策略,则存在确定性最优策略)。然后期望消失了,但是您需要以某种方式收集样本。这就是“行为”策略出现的地方,通常只是您要优化的策略的一个嘈杂版本(最常见的是电子贪婪,或者如果操作连续,则添加高斯噪声)。
因此,现在您已经从要优化的行为策略和目标策略(确定性)中收集了样本。 得出的方程是
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')
的近似值。
如果我们考虑Soroush的伪代码,则如果动作是离散的,则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'
中选择的操作)。
答案 2 :(得分:0)
@Soroush 的回答只有在交换红色文本时才是正确的。离策略学习意味着您尝试使用从另一个策略或多个策略中采样的轨迹来学习最佳策略 $\pi$。这意味着 $\pi$ 不用于生成在环境中正在执行的实际操作。由于 A 是来自 $\epsilon$-greedy 算法的执行动作,它不是来自 $\pi$(目标策略)而是另一个策略(行为策略,因此名称为“行为”)。