免模型预测

有模型与免模型

状态转移概率是已知的,这种情况下使用的算法称之为有模型算法,例如动态规划算法。但大部分情况下对于智能体来说,环境是未知的,这种情况下的算法就称之为免模型算法,目前很多经典的强化学习算法都是免模型的。当然近年来出现了一些新的强化学习算法,例如PlaNet, Dreamer和World Models。这些算法利用了神经网络和其他机器学习方法建立一个近似的环境模型,并使用规划和强化学习的方法进行决策,这些算法也都称为有模型算法。
免模型则直接学习在特定状态下执行特定动作的价值或优化策略。它直接从与环境的交互中学习,不需要建立任何预测环境动态的模型。其优点是不需要学习可能是较为复杂的环境模型,更加简单直接,但是缺点是在学习过程中需要与真实环境进行大量的交互。注意,除了动态规划之外,基础的强化学习算法都是免模型的。

预测与控制

前面提到很多经典的强化学习算法都是免模型的,换句话说在这种情况下环境的状态转移概率是未知的,这种情况下会去近似环境的状态价值函数,这其实跟状态转移概率是等价的,我们把这个过程称为预测

控制的目标则是找到一个最优策略,该策略可以最大化期望的回报。换句话说,你不仅想知道按照某种策略你的预期得分是多少,还想知道如何选择动作以最大化这个得分。控制问题通常涉及两个相互交替的步骤:策略评估(使用当前策略估计值函数)和策略改进(基于当前的值函数更新策略)。

蒙特卡洛估计

蒙特卡洛估计方法在强化学习中是免模型预测价值函数的方式之一,本质是一种统计模拟方法,它的发展得益于电子计算机的发明。假设我们需要计算一个不规则图形的面积,这种情况下是很难通过规则或者积分的方式得到结果的。

而蒙特卡洛基于这样的想法:比如我们有一袋豆子,把豆子均匀地在一定范围内朝这个图形上撒,撒到足够多的数量时数一下这个图形中有多少颗豆子,这个豆子的数目就是图形的面积。当豆子越小撒的越多的时候,结果就越精确。此时我们借助计算机程序可以生成大量均匀分布坐标点,然后统计出图形内的点数,通过它们占总点数的比例和坐标点生成范围的面积就可以求出图形面积。

时序差分估计

时序差分估计方法是一种基于经验的动态规划方法,它结合了蒙特卡洛和动态规划的思想。最简单的时序差分可以表示为
在这里插入图片描述
这种算法一般称为单步时序差分,可以看到,在这个更新过程中使用了当前奖励和后继状态的估计,这是类似于蒙特卡罗方法的;但同时也利用了贝尔曼方程的思想,将下一状态的值函数作为现有状态值函数的一部分估计来更新现有状态的值函数。

时序差分和蒙特卡洛的比较

时序差分方法和蒙特卡洛方法之间的差异。
时序差分方法可以在线学习,每走一步就可以更新,效率高。蒙特卡洛方法必须等游戏结束时才可以学习。
时序差分方法可以从不完整序列上进行学习。蒙特卡洛方法只能从完整的序列上进行学习。
时序差分方法可以在连续的环境下(没有终止)进行学习。蒙特卡洛方法只能在有终止的情况下学习。
时序差分方法利用了马尔可夫性质,在马尔可夫环境下有更高的学习效率。蒙特卡洛方法没有假设环境具有马尔可夫性质,利用采样的价值来估计某个状态的价值,在不是马尔可夫的环境下更加有效。

常见问题

有模型与免模型算法的区别?举一些相关的算法?

模型算法:

包括监督学习、无监督学习和强化学习等方法。
需要通过大量数据训练模型,模型通过学习数据的模式来进行预测或分类。
典型算法:线性回归、逻辑回归、支持向量机、决策树、随机森林、神经网络等。

免模型算法(也称为基于规则的方法):

不需要事先训练模型,而是直接根据规则或数据进行推理和决策。
通常具有较低的计算复杂度和内存需求。
典型算法:基于规则的系统、遗传算法、模拟退火算法、蚁群算法、粒子群算法等。

举例说明预测与控制的区别与联系。

预测和控制是在不同领域中使用的两个概念,它们有一些区别和联系。

区别:
预测是指根据过去的数据和模型来推断未来事件或结果。它主要关注的是对未来情况的估计和预测。预测通常是基于统计分析、机器学习等技术进行的。
控制是指通过采取措施来影响和改变系统的行为,以实现期望的目标。控制通常涉及制定策略、设定目标、监测反馈和调整行动等步骤。

联系:
预测和控制都涉及对系统的理解和分析。预测提供了对未来情况的估计,而控制则根据这些估计来制定行动计划。
预测可以为控制提供基础和参考。通过预测未来情况,可以更好地制定控制策略和决策。
控制可以根据实时的反馈信息来调整和优化预测模型。通过控制行动的结果,可以对预测模型进行修正和改进。
举例来说,假设我们要管理一家零售店的库存。预测可以使用历史销售数据和市场趋势来预测未来某个时间段的销售量。控制可以根据这些预测结果来制定库存管理策略,例如订购适当数量的产品,以满足未来的需求。然后,根据实际销售情况的反馈,可以调整预测模型和控制策略,以优化库存管理效果。

总之,预测和控制是相互关联的概念,它们在不同领域中的应用可以帮助我们更好地理解和管理系统。

蒙特卡洛方法和时序差分方法的优劣势。

蒙特卡洛方法和时序差分方法是两种常用的强化学习算法。

蒙特卡洛方法是一种基于经验采样的学习方法,它通过对多次随机采样的轨迹进行评估和更新,来估计状态值或动作值函数。蒙特卡洛方法的优势在于能够处理具有延迟奖励的问题,因为它是基于完整的轨迹进行更新。另外,蒙特卡洛方法不需要对环境进行模型建模,只需要通过与环境的交互进行学习,因此适用于模型未知或复杂的问题。然而,蒙特卡洛方法的缺点是需要进行多次采样来估计值函数,计算效率较低。

时序差分方法是一种基于时序差分误差的学习方法,它通过使用当前估计值与下一个状态的估计值之间的差异来更新值函数。时序差分方法的优势在于可以在每个时间步骤上进行更新,不需要等待完整的轨迹。这使得它具有更高的计算效率。此外,时序差分方法可以在模型未知的情况下进行学习,并且可以处理连续状态和动作空间的问题。然而,时序差分方法对于延迟奖励的处理相对较差,因为它只能通过估计下一个状态的值来进行更新。

综上所述,蒙特卡洛方法适用于处理具有延迟奖励的问题,而时序差分方法适用于具有高效计算需求的问题。在实践中,这两种方法通常会结合使用,以充分利用它们各自的优势。

免模型控制

Q-learning 算法

在时序差分方法的章节中我们讲的是状态价值函数的时序差分,其目的是为了预测每个状态的价值。而在预测与控制的内容中我们提到了控制的方法是需要输出最优策略的同时,也会输出对应的状态价值函数,预测的方法也是为了帮助解决控制问题做一个铺垫。不知道读者还记不记得,策略与状态价值函数之间是存在一个联系的,这个联系就是动作价值函数。
在这里插入图片描述

Sarsa 算法

与Q-learning算法在形式上只有Q值更新公式上的不同。
在这里插入图片描述

同策略与异策略

尽管Q-learning 算法和 Sarsa 算法仅在一行更新公式上有所区别,但这两种算法代表的是截然不同的两类算法。我们注意到, 算法在训练的过程中当前策略来生成数据样本,并在其基础上进行更新。换句话说,策略评估和策略改进过程是基于相同的策略完成的,这就是同策略算法。相应地,像
算法这样从其他策略中获取样本然后利用它们来更新目标策略,我们称作异策略算法。也就是说,异策略算法基本上是从经验池或者历史数据中进行学习的。这两类算法有着不同的优缺点,同策略相对来说更加稳定,但是效率较低,如同我们实战中展示的那样。而异策略通常来说更加高效,但是需要让获取样本的策略和更新的策略具备一定的分布匹配条件,以避免偏差。

常见问题

什么是Q值的过估计?有什么缓解的方法吗?

在 Q-learning 算法中,Q 值的过估计指的是对某些状态-动作对的值函数估计过高。这种过高的估计可能导致算法在学习过程中产生不稳定的行为,甚至影响最终的决策结果。

Q-learning 是一种基于动作值函数(Q 值函数)的强化学习算法,它通过不断更新状态-动作对的值函数来学习最优策略。在实际应用中,由于采样数据的限制和环境的复杂性,Q-learning 可能会出现对某些状态-动作对的值函数估计过高的情况,即过估计。

过估计可能会导致以下问题:

不稳定的学习过程: 过高的估计可能会导致算法在学习过程中出现不稳定的情况,因为过估计的值可能会导致算法偏离最优策略。

影响最终决策结果: 如果某些状态-动作对的值函数被过高估计,最终的决策结果可能会受到影响,导致算法无法找到最优策略。

为了解决 Q-learning 中的过估计问题,可以采取一些方法,例如使用经验回放(experience replay)来平稳更新样本数据,或者使用双重 Q 学习(Double Q-learning)来减轻过估计的影响。另外,还可以结合使用深度 Q 网络(DQN)等方法来减少过估计的影响,以提高算法的稳定性和性能。

on-policy与 off-policy 之间的区别是什么?

在强化学习中,"on-policy"和"off-policy"是两种不同的学习策略,它们之间的区别主要在于算法如何使用采样数据来进行学习。

On-policy learning(同策略学习):

在 on-policy 学习中,智能体使用的策略(行为策略)与用于学习的策略(目标策略)是相同的。换句话说,采样的数据用于更新当前正在使用的策略。
典型的 on-policy 算法包括 SARSA(State-Action-Reward-State-Action)和 actor-critic 方法中的 actor 部分。

Off-policy learning(异策略学习):

在 off-policy 学习中,智能体使用的策略(行为策略)与用于学习的策略(目标策略)是不同的。换句话说,采样的数据不仅用于更新当前策略,还可以用于更新其他策略。
典型的 off-policy 算法包括 Q-learning 和 Deep Q Network(DQN)。
关键区别:

On-policy 学习需要在学习过程中不断更新当前的策略,因为采样的数据与当前策略相关。这意味着它们通常更适合于在线学习,因为它们需要不断地与环境进行交互以更新策略。
Off-policy 学习允许智能体从以前的经验中学习,因为它们可以使用先前生成的数据来更新目标策略,而不必依赖于当前的行为策略。这使得 off-policy 学习更适合于从离线数据中学习,或者更有效地重用以前的经验。
总的来说,选择使用 on-policy 还是 off-policy 学习取决于具体的问题和应用场景。

为什么需要探索策略?

如果我们一直基于某种思路去工作,工作完之后总结经验(也就是学习的过程)以便提高工作能力和效率,这种方式也许会让我们工作得越来越好,但任何一种思路都不是完美的,都会有一定的瑕疵,也就是说可能会慢慢走偏,此时换一种思路也许就会豁然开朗。实际上人类社会和科学的发展也有着异曲同工之处,举一个古老的例子,很久之前人们认为地球是宇宙的中心(即地心说),并且在公元2世纪将它形成一个体系化的理论,并且以此理论为基础也解决了很多当时难以捉摸的问题。

但是随着科学的进一步发展这种理论也开始走到极限,直到后面哥白尼提出日心说的理论,尽管当时哥白尼由于不被坚持地心说的守旧派而为此付出了沉重的代价。守旧派就相当于一直坚持同一个思路去探索学习,这种探索思路总会受限于当时人们的认知,并且迟早会到达极限,除非出现一个偶然的因素让我们切换一种思路探索并且学习到更多的东西。尽管在今天看来,地心说和日心说都不是准确的,但其实诸多类似的历史事件也告诉我们一个道理,我们需要牢牢掌握现有的知识形成自己的理论或者经验体系,同时也要保持好奇心与时俱进,这样才能长久地发展下去,对于强化学习中的智能体也是如此。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐