您可以将计划视为将模型(完全定义的状态空间,过渡函数和奖励函数)作为输入并输出有关如何在环境中行为的策略的过程,而强化学习则是进行收集的过程单个事件(从一种状态到另一种状态的转换以及所得到的奖励)的输入,并输出有关如何在环境中行为的策略。当代理探索环境中的各种状态时,将收集这些单独的转换。
定义动作的价值
之前,我们定义了方程来表示状态的效用和最优策略。
给定特定状态,我们正在评估可采取的不同操作,以进入下一个状态,并选择产生最大收益的操作(即,将代理转移到最有价值的状态)。因此,开发一个表达式直接表示在给定状态下执行操作的值是有意义的。
具体来说,我们将定义一个新函数, Q (s ,a),评估状态中存在的价值,执行将我们转换为新状态的操作,然后继续遵循某些策略。
类似于状态的效用函数,我们可以将其定义为对累积奖励的期望-唯一的区别是我们现在正在执行代理的第一个操作。
接下来,让我们扩展此总和。
因为我们已指示代理在状态下执行特定操作 小号,状态 小号t + 1取决于我们采取的行动。通过遵循最佳策略确定所有后续状态。
因此,我们可以将此状态序列分组在一起,
在哪里行动 一个 带我们去陈述 小号t + 1并且代理商继续遵守其政策。我们可以这样写问 通过强制代理在进入状态后采取最佳的感知动作 小号t + 1,此后继续类似进行。
我们可以将该期望表达式进一步简化为状态-动作对值的最终表达式。
虽然这是对的真实价值的正式定义 Q (s ,a),在实践中,我们将开发近似方法 Q (s ,a) (理想情况下,以收敛到真实价值函数的方式)来自代理的经验。
有了这个价值功能, Q (s ,a),我们可以用更简单的术语重新定义效用和政策的原始方程式。
让我们花一点时间来欣赏一下这些表达式变得多么美丽。一个州的效用被简单地定义为我们可以在该州采取的最佳行动的价值,而该政策只是要求我们的代理人采取最有价值的行动。
向环境学习
重申一下,强化学习的目标是在未知系统动态的环境中制定策略。我们的代理必须探索其环境并从其经验中学习策略,并在探索以改善代理行为时对其进行更新。
我们可以通过以下方式来实现此目的:反复遵循我们的策略,在代理获得更多经验后更新价值函数,然后根据更新后的价值函数改进我们的策略。这称为策略迭代。
事实证明,关于状态值函数,我们不能使用最优策略的定义,ü(小号),因为定义包括环境模型的知识。
具体来说,我们无权使用转换功能, Ť(š ,a,s′),针对环境。las,如果不了解系统动力学,我们就无法计算出后续状态的期望值。
幸运的是,如果我们改用动作值函数,Q (s ,a),我们不需要了解系统动态来改进策略。
为了改善针对给定状态的策略,我们只需要在遇到环境中的转换时更新操作值函数,并根据以下内容查询要采取的最佳操作即可 Q (s ,a)。
当代理探索其环境时,它将记住已采取行动的价值,从而使我们的代理能够了解系统动态的近似值。
增量学习
下一部分将发现不同的近似方法 Q (s ,a)当我们的经纪人探索环境时。这代表了我们“存储”以前的经验以记住动作价值的方式。使用此更新值函数,我们可以通过查询每个状态下具有最高值的操作来重新计算最优策略。
我们将首先讨论一种方法,该方法用于根据给定的状态和行动的经验积累来确定状态和行动的值,然后扩展该值的近似值,以开发一种逐步更新每个状态-动作对的估计值的方法。环境。
回想一下,我们早先断言一个状态中存在并执行一个动作的价值是在当前状态下收集的奖励,由于该操作而访问的下一个状态下收集的奖励以及进行中的奖励积累的组合此后的最佳状态是将来的奖励被打折。虽然我们不能立即知道最佳策略,因此不能简单地“此后进行最佳处理”,但是我们可以利用我们所经历的知识来更准确地表示 Q (s ,a),这反过来又帮助我们制定了更理想的政策。经过充分的探索和迭代,我们可以得出最佳策略。
蒙特卡洛方法
对于蒙特卡洛学习,我们使用完整情节的集合来近似值函数。情节被定义为从初始状态到最终状态的业务代表旅程,因此这种方法仅在您的环境有具体结局时才有效。让我们在一个更复杂的环境下重新审视gridworld示例。提醒一下,代理可以采取行动来上下左右移动,绿色和红色状态是终端状态。但是,在访问过任何状态之前,我们都不再知道它们的回报,也不知道传递函数如何确定座席的下一个状态(就像在讨论马尔可夫决策过程时所做的那样)。
每条彩色路径都是一个情节,代表了特工达到最终状态所采取的路径。
之前,我们定义了 Q (s ,a) 作为从给定状态开始并执行给定操作的累积奖励的期望。
[LaTex]Q(s,a)=E[R(St)+γR(St+1)+γ2R(St+2)+...|St=s,At=a][/LaTex]
对于蒙特卡洛近似,我们将用所有情节中累积奖励的平均值代替此期望。这些累积的奖励有时统称为回报,定义为GŤ 下面。
\[Gt=Rt+γRt+1+...+γT−1RT\]
例如,假设我们要计算以黄色突出显示的状态开始的值,然后采取向右移动的动作。我们访问了该州并向右移动进行了两次插曲。
实际上,需要特别注意的是,除非我明确提供该信息,否则我们不知道该代理在每个情节中采取了什么行动,因为环境表现出随机行为,并且我们的传递函数并不总是使该代理处于预期状态。为简单起见,在此示例中,我还将假设我们的特工采取了行动,在这两个情节中都向右移动。
我们可以通过打折积累的奖励直到代理到达终端状态,来计算突出显示状态中存在的值以及两个情节的右移。然后,我们可以通过采用所有情景回报的平均值来近似估算从突出显示状态向右移动的一般值。
在评估环境中的所有状态时,有两种通用方法可以解决此问题。一种方法是从每个事件的州初次访问的角度考虑该州的未来轨迹。这就是“首次访问蒙特卡洛评估”。我们仅考虑代理商首次访问时来自某个州的轨迹。
第二种方法是在每个情节访问该州的所有时间中考虑该州的未来轨迹。这就是“每次访问蒙特卡洛评估”。请注意,在这种情况下,我们还考虑了在蓝色轨迹返回状态之后从突出显示状态开始的灰色轨迹。
之前,我们将动作值函数的近似值建立为所有情节中每个状态-动作对的平均回报。为了在每个情节之后学习,我们可以以递增方式重写均值的计算。
\[Q(s,a)=μk=1k∑i=1kG(i)(s,a)\]
首先,我们将最新的情节放在求和之外。
\[μk=1k(G(k)(s,a)+∑i=1k−1G(i)(s,a))\]
然后,我们可以将求和表示为重复均值。
\[μk=1k(G(k)(s,a)+(k−1)μk−1)\]
经过更多的重新排列,我们得出了均值的定义,可以使用当前的情节状态作用值和总的近似状态作用值来增量更新。
\[μk=μk−1+1k(G(k)(s,a)−μk−1)\]
每次访问情节中的某个州,我们都可以总计从该州开始累积的奖励,并在达到最终状态时可以更新我们的价值函数近似值。我们还可以通过代入一个递增的平均值来计算运行平均值(随着时间的推移会忘记旧的值)1个ķ 对于一个恒定值 α,如果环境状态随时间变化。当逼近真实作用值函数时,这导致更多的最新经验持有更多权重。
\[μk=μk−1+α(G(k)(s,a)−μk−1)\]
回想起那个 μķ 是我们对真实值函数的估计, Q (s ,a),鉴于我们从中学到的 ķ情节。一般而言,此更新等式使我们可以比较之前的估算,μk − 1,到最新一集的返回, G(k ),并相应地更新我们的猜测。
\[Q(s,a)←Q(s,a)+α(G(k)(s,a)−Q(s,a))\]
时差法
最初,我们的估计值函数是任意定义的-通常我们假设每个状态操作对都具有零值,尽管您也可以将值函数初始化为一个小的正数以鼓励探索(被称为“面对现实的乐观主义”不确定”)。但是,当我们的代理探索环境并积累经验时,我们可以使用这些经验来更新对真实价值函数的猜测。价值功能代表通过执行既定策略来完成某项操作并累积未来奖励的奖励。因此,我们的估计值函数发出信号,表示我们期望进入一种状态并执行某些操作会积累多少报酬。在前面讨论的蒙特卡洛方法中,我们模拟了完整的情节,然后回算该情节期间执行的每个状态-动作对的值。由于我们将模拟进行到完成(即,我们的特工达到了最终状态),因此我们可以轻松地计算模拟过程中任何一点的未来累积奖励。
但是,蒙特卡洛方法要求我们先运行完整的情节,然后才能更新估计值函数。在蒙特卡洛学习中,我们将通过比较历史均值和情景回报来更新状态-动作对的值,并朝着将这种差异最小化的方向迈出一步。
时间差异学习提供了一种在线学习方法,使我们可以在单个情节中更新估计值函数。顾名思义,我们通过查看两个不同时间点的状态-动作对的估计值的差异(时间差异)来更新值函数。更具体地讲,当代理在环境中获得更多经验之后,我们会将状态-动作对的当前估计与更明智的未来估计进行比较。
例如,到达某个状态后,我们将查看代理立即收集的报酬以及进入后续状态后的预期未来回报, s′,通过执行一些操作,并将其与我们之前对该状态操作对的估算值进行比较。
\[Q(s,a)←Q(s,a)+α((Rt+γQ(s′,a′))−Q(s,a))\]
表达方式 [RŤ+ γQ (s′,一个′)被称为TD目标,代表了更好的近似值Q (s ,a) 考虑到它代替了从现有州获得的估计奖励的事实 s与实际的奖励。在这种情况下,TD目标比我们要更新的状态-动作对值领先一步,但是可以扩展为ñ 逼近时要向前走 Q (s ,a)。将TD目标与之前的近似值进行比较Q (s ,a)产生所谓的TD误差,δŤ; 我们的更新功能朝着将TD错误最小化的方向迈出了一步。
\[δt=(Rt+γQ(s′,a′))−Q(s,a)\]
这种学习方法使我们能够在了解最终结果之前进行更新,这在非终止环境中学习时显然非常有利。
混合方法
扩展TD表达式以使其看起来 ñ向前迈进,我们只需要更新TD目标即可。请记住,TD目标通过合并观察到的未来回报,代表了状态-行动对值的更明智的近似值。对于n = 1,我们向前迈出了一步,观察了回报并将其与我们从那时起对未来收益的估计结合起来,并将其指定为原始状态的TD目标。对于n = 2,我们遵循与预期相同的程序,这次我们向前迈出了两个步骤,观察每个州收集的奖励。
在此图中,白色圆圈表示状态,黑色圆圈表示收集的奖励,正方形表示最终状态。
通常,TD目标是 ŤD (n ) 如下:
\[Rt+γRt+1+...+γn−1Rt+n−1+γnQ(s′,a′)\]
如果我们一直往前看 n = ∞,我们将得出蒙特卡洛方法进行学习,在此方法中,我们简单地看待离开某种状态后的折扣贴现总和。 s 通过行动 一个。
随着我们的增加 ñ,我们会从实际环境中纳入更多观察结果,从而减少估计的偏差(请参阅以下有关比较学习方法的部分)。但是,由于每个下一个状态都是随机过程的结果,因此方差会增加。对于不同的环境,存在不同的值ñ可以最有效地向后传播信息。一种更可靠的方法是使用可以有效考虑所有因素的TD目标ñ 立刻。
这种更强大的方法称为 ŤD (λ ) 结合所有方法 ñ分步返回为几何加权总和,衰减系数为 λ,如下图所示。为了计算效率,我们特别选择使用几何和。
设置 λ = 0,只有单步返回的权重为非零,因此这等效于 ŤD (0 )方法。设置λ = 1,只有完整的返回序列的权重为非零,因此这等效于蒙特卡洛方法。下图显示了每个ñ步骤返回 n = 1 (一步返回) n = ∞ (完整的返回序列),根据 λ。
的 \[ TD(λ) \]目标, \[Gλt\],合计 ñ分步返回的所有值 ñ,可以写成
\[Gλt=(1−λ)∑n=1∞λn−1G(n)t\]
哪里 G(n )Ť 代表 ñ分步返回。结果是一个更健壮的值近似模型。调整参数λ 泛化到更多的情况比您观察到的调整要好得多 ñ。
到目前为止,我一直在从前视图的角度讨论时间差异学习,在该视图中,我们通过观察以下步骤中发生的事情来分配状态-动作对的值。
但是,为了实施这种前瞻性方法,我们需要等到每个情节的结尾才能执行更新。幸运的是,我们可以重新构造此透视图,以查看后视图,这将使我们能够在进行充分探索后更新以前访问的状态。例如,在ŤD (n ) 学习,我们沿着轨迹的每一步都使我们能够更新状态的值 ñ 当前状态之前的步骤。
通过这样做,我们可以将先前状态中的操作的长期结果发送回去。但是,这引入了信用分配问题。在考虑多个更新时ñ往回走,我们如何知道之前的哪些动作对当前时间步长积累的奖励有影响?
一个频率启发式将分配功劳,这是我们以前最常访问的状态。假设我们最常访问的州是最有可能影响我们当前结果的州。一个新近启发式将功劳分配给我们了最近访问过的状态。这是假设我们当前的结果很可能受到我们最近访问的州的影响。的资格迹通过一个固定的量在每次访问状态的时间增加分配给国家的信用,慢慢腐烂随着时间的推移,信贷如下图所示的照片结合了这些启发式的。
当我们的代理探索环境时,我们会朝着使TD错误最小化的方向更新状态操作值函数,并根据每个更新的状态的合格性跟踪进行缩放。这使我们可以将更新重点放在我们认为会导致未来回报的状态上。
我们将所有状态-动作对的资格初始化为零 t = 0。
\[E0(s,a)=0\]
在每个时间步长,所有状态-动作对合格迹线的衰减系数为 γ。此外,每次访问状态-动作对时,我们将其资格增加一。
\[Et(s,a)=γλEt−1(s,a)+1(St=s,At=a)\]
这样一来,我们就可以在每个时间步根据其资格对状态操作对进行更新, ËŤ(s ,a),以及TD错误, δŤ。
\[δt=Rt+1+γQ(St+1,At+1)−Q(St,At)\]
\[Q(s,a)←Q(s,a)+αδtEt(s,a)\]
尽管我们的TD误差仅比当前估计值提前了一步,但我们能够将误差发送回任何资格非零的状态对。
比较学习方法
偏差与方差的权衡
在进行蒙特卡洛学习时,我们仅根据前几集的经验更新了估计值函数;给定状态-动作对的值被计算为所有情节的平均回报。因此,我们采用这种方法引入零偏差。但是,任何给定情节的收益都是随机转变的积累,这可能会在我们的估计值函数中引入高水平的方差。
相反,当使用时间差异学习更新我们的估计值函数时,我们将经验的一步与对该点以后的未来收益的估计结合起来(统称为TD目标)。在这种情况下,我们对未来收益的估计会产生偏差。但是,由于我们只有一个随机过渡,因此这种方法的方差小得多。
马尔可夫环境
在两种学习方法(TD和蒙特卡洛)中,我们都通过将我们的估计值与某个目标进行比较来更新我们对价值函数的估计,然后将估计值调整为更接近目标。
在TD学习中,我们的目标定义为
\[Rt+γQ(s′,a′)\]
对于 ŤD (0 )。
在蒙特卡洛学习中,我们的目标被定义为情景回报
\[Rt+γRt+1+...+γ∞R∞\]
在这里,我们简单地折现某个状态后的所有收益,直到达到最终状态为止。
马尔可夫性质要求未来状态的条件概率仅取决于当前状态,而不取决于其之前的状态序列。之前,当查看状态序列的值时,我们使用此属性将轨迹的整个将来值折叠为分配给单个状态的值。遵循某些策略时,任何给定状态的值都隐含地解释了将来累积的奖励。在学习时差的方法中,我们类似地将TD目标分配为考虑未来状态序列的估计值。由于TD学习利用了这种Markov属性,因此在Markov环境中,它通常比Monte Carlo学习更有效率。
厄普西隆贪婪探索
当我们的探员探索环境并建立对其行动价值的理解时,我们将获得做出“更智能”决策的能力。但是,如果我们在充分探索环境之前过早优化策略,则可能会收敛到次优策略。
假设为您提供了两扇门,您可以将其打开并保持另一侧的任何奖励。您打开门A,什么也没找到。接下来,您打开B门并获得$ 5。考虑到到目前为止所学的知识,“最佳”策略将指示您继续打开门B,而忘记门A完全存在。但是,如果这是在随机环境中发生的,那么我们如何确保仅一次尝试即可打开A门没有任何价值呢?
解决此问题的最简单方法是epsilon-greedy探索。贪婪的行为代表了我们的政策为获得最佳效果而建议采取的行动,我们将以可能的概率遵循该政策1 − ϵ。但是,我们将采用概率为ϵ,这使我们有时为了探索而做出“愚蠢”的选择。通常,这些随机探索会发现比我们的政策所了解的更有价值的状态,因此我们可以相应地调整我们的政策。
但是,虽然 ϵ-贪婪策略对于鼓励代理探索环境非常有价值,最终,我们希望收敛于始终做出最佳决策的贪心策略(即无需随机探索)。这种权衡通常被称为探索与开发,这是在鼓励您的代理探索环境与鼓励您的代理在环境中做出明智决定之间进行权衡。
解决此折衷的一个想法是无限探索中的贪婪(GLIE)。GLIE要求:1)对所有国家行动对进行无数次探索,以及2)该政策最终收敛于一个贪婪的政策。我们可以将GLIE的原理应用于ϵ贪婪的政策 ϵ 随着时间的推移。
摘要
在这篇文章中,我们介绍了 Q (s ,a)作为在不了解底层系统动态的情况下确定最佳策略的一种方法。这使我们可以从环境中学习,而不仅仅是计划。
然后,我们讨论了两种主要的更新方法 Q (s ,a) 当我们的经纪人探索环境时:
蒙特卡洛
从完整的剧集中学习。
高方差,零偏差。
充分前瞻。
时间差异
从不完整/进行中的情节中学习。
高偏差,低方差。
短期前瞻结合猜测。
最后,我们介绍了一种将两种方法混合使用的技术,从而可以提高学习效率。在我的下一篇文章中,我将讨论这些通用方法的特定实现。


雷达卡






京公网安备 11010802022788号







