在 RL 的上下文中,存在on-policy和off-policy算法的概念。我了解 on-policy 和 off-policy 算法之间的区别。此外,在 RL 中,还有在线和离线学习的概念。
在线学习和on-policy算法之间的关系(包括差异)是什么?同样,离线学习和离策略算法有什么关系?
最后,在线(或离线)学习和离线(或在线)算法之间是否有任何关系?例如,on-policy 算法可以执行离线学习吗?如果是,你能解释为什么吗?
在 RL 的上下文中,存在on-policy和off-policy算法的概念。我了解 on-policy 和 off-policy 算法之间的区别。此外,在 RL 中,还有在线和离线学习的概念。
在线学习和on-policy算法之间的关系(包括差异)是什么?同样,离线学习和离策略算法有什么关系?
最后,在线(或离线)学习和离线(或在线)算法之间是否有任何关系?例如,on-policy 算法可以执行离线学习吗?如果是,你能解释为什么吗?
在线策略与离线策略以及在线与离线的概念是分开的,但确实会相互作用以使某些组合更可行。考虑到这一点,还值得考虑强化学习 (RL) 中预测和控制之间的差异。
这些概念并非特定于 RL,许多学习系统可以分为在线或离线(或介于两者之间)。
在线学习算法使用可用的数据。严格的在线算法会在每条新数据到达时对其进行增量改进,然后丢弃该数据并且不再使用它。这不是必需的,但通常希望在线算法随着时间的推移忘记较旧的示例,以便它可以适应非平稳种群。带有反向传播的随机梯度下降(用于神经网络)就是一个例子。
离线学习算法处理来自数据集的批量数据。严格的离线学习算法需要从头开始重新运行,以便从变化的数据中学习。支持向量机和随机森林是严格的离线算法(尽管研究人员已经构建了它们的在线变体)。
在这两种类型中,在线算法更为通用,因为您可以轻松地从严格在线的算法加上存储的数据集构建离线算法,但对于严格离线的算法则不然。然而,这并不一定会让它们变得更优越——在使用在线算法时,通常会在样本效率、CPU 成本或准确性方面做出妥协。神经网络训练中的小批量等方法可以被视为试图找到在线和离线算法之间的中间地带。
体验回放是一种常见的 RL 技术,在 Deep Q Networks 等中使用,是另一种介于两者之间的方法。尽管您可以存储理论上完全训练代理所需的所有经验,但通常您会存储滚动历史并从中采样。可以就此争论语义,但我认为这种方法是一种“在线缓冲”,因为它需要可以在线工作的低级组件(例如 DQN 的神经网络)。
这些更具体到控制系统和 RL。尽管这些概念和在线/离线在名称上相似,但它们指的是问题的不同部分。
On-policy算法使用单个策略,通常表示为,并要求使用该策略生成任何观察结果(状态、动作、奖励、下一个状态)。
离策略算法使用两个策略(有时更有效,但每步不超过两个)。这些是正在学习的策略,称为目标策略(通常显示为),以及生成观察的所遵循的策略,称为行为策略(在文献中称为各种事物 -,,萨顿和巴托称之为在最新版本中)。
在这两种情况下,都不需要严格在线或离线处理观察结果。
相对于线上和线下学习的关系,off-policy始终是on-policy的严格概括。您可以通过设置将任何离策略算法变为等效的策略算法. 在某种意义上,你可以逐步做到这一点,通过使更接近(例如,减少在一个- 贪婪行为策略在哪里是完全贪心策略)。这可能是可取的,因为离策略代理仍然需要观察在目标策略下发生的状态和动作——如果由于两者之间的差异而很少发生的话和,那么学习目标策略会慢慢发生。
由于专注于搜索最佳策略,这可能会被遗忘。
RL 中的预测问题是在给定环境和策略的情况下估计特定状态或状态/动作对的值。
RL 中的(最优)控制问题是在给定环境的情况下找到最佳策略。
使用基于价值的方法解决控制问题包括估计处于某个状态的价值(即解决预测问题),以及调整策略以根据这些估计做出更高的价值选择。这称为广义策略迭代。
这里要注意的主要是预测问题是平稳的(所有长期预期分布随着时间的推移都是相同的),而控制问题为预测组件添加了非平稳目标(策略发生变化,预期回报也会发生变化) , 状态分布等)
请注意,这与算法的选择无关。算法选择的最强驱动力是on-policy(例如SARSA)与off-policy(例如Q-learning)。相同的核心学习算法通常可以在线或离线使用,用于预测或控制。
在线,政策预测。学习代理被设置为评估某些状态(或状态/动作对)的任务,并在观察数据到达时进行学习。它应该始终以相同的方式运行(它可能正在观察其他具有固定且可能未知策略的控制系统)。
在线、离线预测。学习代理被设置为从任意固定目标策略的角度评估某些状态(或状态/动作对)的任务(必须为代理定义),并在观察数据到达时从中学习。观察可以来自任何行为策略- 根据所使用的算法,可能需要有定义以及.
离线,在线预测。学习代理被设置为评估某些状态(或状态/动作对)的任务,并获得一个来自使用某些固定策略的代理环境的观察数据集。
离线,离线预测。学习代理被设置为从任意固定目标策略的角度评估某些状态(或状态/动作对)的任务(必须为代理定义),并获得来自使用其他策略的代理环境的观察数据集.
在线,政策控制。学习代理的任务是在环境中表现最佳,并在每个观察到达时从中学习。它将在学习时调整自己的策略,使这成为一个非平稳问题,并且重要的是,它也使自己的观察历史脱离策略数据。
在线,离线控制。学习代理的任务是在环境中表现最佳。它可能会表现并从行为策略中获得观察结果,但学习了一个单独的最优目标策略. 链接很常见和- 例如对于是关于估计的动作值的确定性贪婪策略,并且对于成为-关于相同行动价值观的贪婪政策。
离线,在线策略控制。一般来说,这实际上是不可能的,因为策略上的代理需要能够观察有关其当前策略的数据。一旦它学习到了与存储数据集中不同的策略,那么所有数据都变得不符合它的策略,并且代理没有有效的源数据。在某些情况下,您可能仍然可以得到一些工作。
离线,离线控制。学习代理的任务是从存储的观察数据集中学习最佳策略。观察可以来自任何行为策略- 根据所使用的算法,可能需要有定义以及.
正如您在上面看到的,只有一个组合离线,on-policy control会导致冲突。
RL 中存在强烈的在线学习倾向。缓冲一些数据的方法,如蒙特卡洛控制、经验回放或 Dyna-Q 确实混合了离线学习的一些特征,但仍然需要不断提供新的观察结果并忘记旧的观察结果。控制算法意味着非平稳数据,这些需要估计者的在线遗忘行为——另一个在线学习特征。
然而,在体验回放中混合一些“离线”数据可能会导致在线策略控制算法的一些复杂性。经验缓冲区可以包含在技术上与代理的最新迭代无关的内容。这在实践中有多少问题会有所不同。