无模型和基于模型的强化学习之间有什么区别?
在我看来,任何通过尝试和错误学习的无模型学习者都可以改组为基于模型的学习者。在这种情况下,无模型学习者何时才合适?
无模型和基于模型的强化学习之间有什么区别?
在我看来,任何通过尝试和错误学习的无模型学习者都可以改组为基于模型的学习者。在这种情况下,无模型学习者何时才合适?
Answers:
基于模型的强化学习需要代理商尝试理解世界并创建一个代表世界的模型。在这里,模型是试图捕捉2层的功能,从状态转换函数和回报函数。根据此模型,代理可以参考,并可以据此进行计划。
但是,不必学习模型,代理可以直接使用Q学习或策略梯度之类的算法来学习策略。
查看RL算法是基于模型还是不基于模型的简单检查是:
如果在学习之后,代理可以在执行每个动作之前对下一个状态和奖励进行预测,则这是基于模型的RL算法。
如果不能,则为无模型算法。
无模型和基于模型的强化学习之间有什么区别?
在强化学习中,术语“基于模型”和“无模型” 并不表示使用神经网络或其他统计学习模型来预测值,甚至无法预测下一个状态(尽管后者可以用作基于模型的算法的一部分,并且无论该算法是基于模型还是无模型,都称为“模型”。
取而代之的是,该术语严格指的是在学习或行动期间,代理是否使用对环境响应的预测。代理可以使用来自下一个奖励和下一个状态(样本)的模型的单个预测,也可以向模型询问期望的下一个奖励,或下一个状态和下一个奖励的完整分布。这些预测可以完全在学习代理之外提供,例如通过了解骰子或棋盘游戏规则的计算机代码。或者他们可以由代理学习,在这种情况下,它们将是近似的。
仅仅因为存在实现的环境模型,并不意味着RL代理是“基于模型的”。为了符合“基于模型”的要求,学习算法必须明确引用该模型:
仅从经验中进行采样的算法(例如蒙特卡洛控制,SARSA,Q学习,Actor-Critic)是“无模型” RL算法。他们依赖于来自环境的真实样本,并且从不使用对下一个状态和下一个奖励的生成的预测来改变行为(尽管他们可能从经验记忆中采样,这几乎是一个模型)。
基于原型模型的算法是动态编程(策略迭代和值迭代)-这些算法都使用模型的下一个状态和奖励的预测或分布来计算最佳动作。特别是在动态编程中,该模型必须提供状态转换概率以及任何状态,动作对的预期奖励。请注意,这很少是学习的模型。
RL文献将“模型”作为环境模型进行“基于模型”和“无模型”学习,以及对统计学习器(例如神经网络)的使用进行了区分。
在RL中,通常使用神经网络来学习和归纳值函数,例如Q值,该Q值在给定状态和动作对的情况下预测总回报(折扣奖励的总和)。这种训练有素的神经网络在例如监督学习中通常被称为“模型”。但是,在RL文献中,您会看到用于此类网络的术语“函数逼近器”以避免歧义。
在我看来,任何通过尝试和错误学习的无模型学习者都可以改组为基于模型的学习者。
我认为您在这里使用的是对“模型”一词的一般理解,包括可以做出有用预测的任何结构。这将适用于例如SARSA中的Q值表。
但是,如上所述,这不是在RL中使用的方式。因此,尽管您对RL构建有用的内部表示的理解是正确的,但从技术上讲,您不能将其用于在“无模型”和“基于模型”之间重新构架,因为这些术语在RL中具有非常特定的含义。
在这种情况下,无模型学习者何时才合适?
通常,在RL的最新技术中,如果您没有在问题定义中提供准确的模型,那么无模型方法通常会更好。
对构建环境的预测模型的代理有很多兴趣,并且这样做作为“副作用”(尽管仍然是无模型算法)仍然有用-它可以使神经网络正规化或帮助发现关键的预测也可以在政策或价值网络中使用的功能。但是,学习他们自己的计划模型的基于模型的代理程序存在一个问题,即这些模型中的不准确度会导致不稳定(不准确度会进一步增加代理程序的外观)。正在使用基于想象力的代理和/或机制来决定在计划期间何时和多少信任所学习的模型,这是一些有前途的举措。
现在(2018年),如果您在一开始就没有明确的已知模型的环境中遇到现实问题,那么最安全的选择就是使用无模型方法,例如DQN或A3C。随着该领域的快速发展,这种情况可能会改变,并且新的更复杂的体系结构很可能会在几年内成为常态。
代理商的主要目标是“长期”收集最大的报酬。为此,代理需要找到最佳策略(大致来说,是在环境中运行的最佳策略)。通常,策略是一种功能,在给定环境的当前状态的情况下,该功能输出要在环境中执行的操作(如果策略是随机的,则为操作的概率分布)。因此,可以将策略视为代理程序在此环境中运行的“策略”。最佳策略(对于给定的环境)是一种策略,如果遵循该策略,它将使代理从长远来看(这是代理的目标)获得最大的报酬。因此,在RL中,我们有兴趣寻找最佳策略。
环境可以是确定性的(也就是说,对于所有时间步长,相同状态下的相同动作都会导致相同的下一个状态)或随机(或不确定)环境,即,如果代理在某个状态下采取了某项动作特定状态下,环境的下一状态不一定总是相同的:存在某个状态或另一状态的可能性。当然,这些不确定性将使寻找最佳政策的任务变得更加困难。
在RL中,问题通常用数学公式表述为马尔可夫决策过程(MDP)。MDP是表示环境“动态”的一种方式,即环境在给定状态下对代理可能采取的行动做出反应的方式。更准确地说,MDP配备了转换函数(或“转换模型”),该函数在给定环境的当前状态和操作(代理可能采取的行动)的情况下,输出转移到任何环境的可能性。下一个状态。一个奖励功能也与MDP相关联。直观上,给定功能会在给定环境的当前状态(以及可能由代理采取的行动以及环境的下一个状态)的情况下输出奖励。总的来说,过渡和奖励功能通常称为环境模型。总而言之,MDP是问题,解决问题的方法是一项政策。此外,环境的“动力学”由过渡和奖励函数(即“模型”)控制。
但是,我们通常没有MDP,也就是说,我们没有(与环境相关的MDP的)过渡和奖励功能。因此,我们无法从MDP估算策略,因为它是未知的。请注意,通常,如果我们具有与环境关联的MDP的转移和奖励功能,则可以利用它们并检索最佳策略(使用动态编程算法)。
在没有这些功能的情况下(即,当MDP未知时),为了估计最佳策略,代理需要与环境交互并观察环境的响应。这通常被称为“强化学习问题”,因为代理将需要通过加强其对环境动态的信念来估计策略。随着时间的流逝,代理开始了解环境如何响应其操作,因此可以开始估算最佳策略。因此,在RL问题中,代理通过与策略进行交互(使用“试错”方法)来估计在未知(或部分已知)环境中运行的最佳策略。
在这种情况下,基于模型algorithm是一种算法,它使用转换函数(和奖励函数)来估计最佳策略。代理可能只能访问转换函数和奖励函数的近似值,可以在与环境交互时由代理学习,也可以将其提供给代理(例如,由另一个代理)。通常,在基于模型的算法中,代理可以潜在地预测环境的动态(在学习阶段中或学习阶段之后),因为它具有转换函数(和奖励函数)的估计。但是,请注意,代理用来改善对最佳策略的估计所使用的过渡和奖励函数可能只是“真实”函数的近似值。因此,可能永远不会找到最佳策略(由于这些近似值)。
无模型算法是一种无需使用或估算环境动力学(过渡和报酬函数)即可估算最佳策略的算法。在实践中,无模型算法可以直接根据经验(即代理与环境之间的交互作用)估算“价值函数”或“策略”,而无需使用过渡函数或奖励函数。可以将值函数视为对所有状态都评估状态(或在状态中采取的操作)的函数。然后,可以从该价值函数得出策略。
在实践中,区分基于模型的算法或不基于模型的算法的一种方法是查看算法,并查看它们是否使用过渡或奖励函数。
例如,让我们看一下Q学习算法中的主要更新规则:
如我们所见,此更新规则不使用MDP定义的任何概率。注意:只是在下一个时间步(采取行动之后)获得的奖励,但不一定事先知道。因此,Q学习是一种无模型算法。
现在,让我们看一下策略改进算法的主要更新规则:
我们可以立即观察到它使用了MDP模型定义的概率。因此,使用策略改进算法的策略迭代(一种动态规划算法)是一种基于模型的算法。
据OpenAI - RL算法的种类,其使用环境的模式,即一个函数,它预测的状态转换和奖励算法,被称为基于模型的方法,以及那些不被称为无模型。该模型既可以由代理提供,也可以由代理学习。
使用模型使代理可以通过预先考虑,查看一系列可能的选择会发生什么并明确决定其选择来进行计划。当遇到需要更多长期思考的问题时,这可能会很有用。执行计划的一种方法是使用某种树搜索,例如蒙特卡罗树搜索(MCTS),或者(我怀疑也可以使用)快速探索随机树(RRT)的变体。参见例如想象和计划的特工。
然后,代理可以将预先计划的结果提炼成已学习的策略,这称为专家迭代。
模型也可以用于创建模拟的或“想象的”环境,在其中通过使用模型来更新状态,并使代理在该环境内学习,例如在World Models中。
在许多实际场景中,代理程序无法使用环境的真实模型。如果座席想要在这种情况下使用模型,则必须学习该模型,由于多种原因,这可能具有挑战性。
但是,在某些情况下,代理使用已知的模型,因此不必学习模型,例如在AlphaZero中,模型以游戏规则的形式出现。
尽管有几个很好的答案,但我想在《强化学习:简介》(第303页)中添加此段,以从心理上更清楚地了解两者之间的区别。
无模型和基于模型的强化学习算法之间的区别对应于心理学家对习得的行为模式的习惯性控制和目标控制之间的区别。习惯是由适当的刺激触发的行为模式,然后或多或少地自动执行。根据心理学家对短语的使用,目标导向的行为是有目的的,因为它由对目标价值以及行为与后果之间的关系的了解来控制。有时习惯习惯是由前世的刺激所控制,而目标导向的行为则受其后果所控制(Dickinson,1980,1985)。目标控制的优势在于,当环境改变其对动物行为的反应方式时,它可以迅速改变动物的行为。尽管习惯性行为会快速响应来自习惯环境的输入,但它无法快速适应环境的变化。
它从那里继续前进,此后有一个很好的例子。
我认为在其他答案中并不总是能解释的重点是,在没有模型的方法中,您仍然需要某种环境来告诉您与您的行为相关的奖励是什么。最大的区别是您不需要存储有关模型的任何信息。您给环境选择的操作,更新估计的策略,然后就忘了。另一方面,在基于模型的方法中,您要么需要像动态编程中一样了解状态转换历史,要么需要能够从当前状态计算出所有可能的下一状态以及相关的奖励。