0%

Model-based reinforcement learning

Model-based reinforcement learning和model-free reinforcement learning很难区分和界定,这篇文章记录一下几片关于model-based的文献,对于这几年做的强化学习做一个总结。

参考文献:

《Model-based Reinforcement Learning: A Survey》

读后总结:这篇文章写的不清不楚,没有啥干货,讲的太浅显了。

Model-based reinforcement learning的类别

planning和learning的区别:在于是否他们可以access MDP dynamics

planning:reversible access to the MDP, which allows it to repeatedly plan forward from the same state, similar to the way humans plan in their minds. (对MDP的可逆访问,这允许它从同一个状态重复计划)

Reinforcement learning: irreversible access to the environment , and has to move forward after an action is executed, similar to the way we act in the real world. (对环境进行不可逆的访问,并且在执行一个动作后必须前进,类似于我们在现实世界中的作用方式)

Model-based RL定义:

  • 使用一个模型,无论是已知的还是学习出来的,对于系统动态具有可逆的access
  • 学习去近似一个全局的value或者policy函数

Planning 和 Learning结合的几种方法:

  • Model-based RL with a learned model, where we both learn a model and learn a value or policy. 代表作:Dyna (1991)
  • Model-based RL with a known model, where we have a known model and use planning to learn a global value or policy. 代表作:AlphaGo Zero (2017)
  • Planning over a learned model, where we learn a model and plan over it, witout learning a global value or policy function. 代表作:Embed2Control(2015)

其实第三类并不算model-based RL,因为它并不去学习一个全局的解,但是,它是一种planning-learning integration的方法,因此,这篇文章也将其考虑进去了。

需要注意的是:replay databases 和 具有一个学习的tabular model的model-based RL的分界线很模糊。

区分出上述几种不同类别的算法很重要,因为他们是被用来解决不同的问题,例如,具有一个学习到的模型的方法通常需要处理不确定性。而已知模型的方法通常不需要解决不确定性的问题,但是需要更严格的性能的分析。

Dynamics model learning

model-based RL的基础是基于观察到的数据学习出来dynamics model。在控制领域中,这个过程叫系统辨识。主要的挑战有:随机性,有限数据造成的不确定性,状态抽象,时间抽象等

基本考虑

Model-learning通常是一个监督学习的问题。

模型的种类

模型有很多不同的种类:

  • Forward model: \(\left(s_{t}, a_{t}\right) \rightarrow s_{t+1}\)​,此类模型给定当前的状态和对应的action,预测下一个状态
  • Backward/reverse model: \(s_{t+1} \rightarrow\left(s_{t}, a_{t}\right)\)​,这种模型预测了哪些状态是一个特定状态的可能的前一个状态,然后可以向后进行plan
  • Inverse model: \(\left(s_{t}, s_{t+1}\right) \rightarrow a_{t}\)​,这种模型是一个反向模型,用来预测从一个状态跳转到另一个状态需要什么样的action

Model-based RL主要专注于Forward model。

选择监督学习的方法

监督学习的方法主要有两种,一种是有参数的,一种是无参数的

有参数的监督学习方法通常是model approximation中的最流行的方法,与无参数的方法相比,一个优势是参数的数量和观测到的dataset是无关的,无参数的监督学习方法又可以分为两类

  • 第一类是:Exact:A tabular method maintains a separate entry for every possible transition. 举例来说,在一个stochastic MDP中,a tabular maximum likelihodd model 用来估计每一个可能的transition的概率,简单的来说,就是根据采样或者历史数据积累的到的样本,计算从\((s, a)\)到状态\(s'\)的概率,用这个概率来作为MDP的状态转移概率矩阵。
  • 第二类是:Approximate:使用近似的方法来近似函数,可以有效降低存储空间的需求,因此,function approximation的方法更加适用于高维度的问题。我们理论上可以使用任意的parametric approximation的方法来学习这个模型。包括linear regression, dynamic bayesian network, nearest neighbors, random forests, support vector regression, neural networks等。与其他方法相比,基于neural network的近似方法往往可以对于高维度的问题具有更好的scale的能力,同时,也可以很好的拟合非线性的函数。

无参数的监督学习也可以分为两种,无参数的监督学习的特征是他们直接存储并使用数据来表征模型

  • 第一类是:Exact:Replay Buffers可以被认为是一个无参数的tabular method。理论上来说,一个replay buffer可以继续存储所有的数据
  • 第二类是:Approximate:高斯过程是一个流行的无参数的方法,高斯过程可以同时处理不确定性。

无参数的方法的计算量依赖于数据集的大小,这使得他们对于处理高维度问题存在困难,需要采集大量的数据。

模型有效的区域

  • 全局:模型在整个状态空间中近似dynamics
  • 局部:局部近似dynamics,然后在每次planning以后,就丢弃这个局部的模型。这种类型的模型在控制领域中很流行,使用local linear approximations of the dynamics around some current state。 但是,局部模型把输入限制在了模型有效区域,但是局部模型的一个优点是,我们可能可以使用一个更加严格的函数来近似系统动态,和全局的相比,可能会更加稳定。然后,我们需要不断的去近似新的模型,且并不存储所有收集到的数据。

随机性

在随机MDP中,转移函数往往是一个分布,给出的是:在给定状态下转移到下一个状态的概率,而不是直接给出下一个状态。在这种情况下,我们应该需要一个模型来近似整个分布。或者,当我们训练一个确定性的神经网络在一个mean-squared error loss的情况下,然后,这个神经网络往往会学习到预测下一个状态分布的条件均值

我们可以或者近似整个下个状态的分布(descriptive models),或者近似一个模型,其可以产生样本(generative model)。Descriptive models通常在一些小的状态空间中可行,典型的方法有:tabular models, Gaussian models, Gaussian mixture models,然而,这些方法很难处理高维度的问题。

对于高维度的问题,近年来基于神经网络的generative models取得了很多的突破。典型的方法有:variational inference来估计动态模型,Generative adversarial networks (GANs),autoregressive full-likelihood models, and flow-based density models这几个模型被用于序列建模问题。

不确定性

Model-based learning一个主要的问题或者说难点是利用有限的数据来解决,不确定性和随机性的主要区别在于:不确定性可以通过观察更多的数据来降低,然而随机性是无法通过数据样本的增多来降低的。

integration of planning and learning

主要讨论4个问题:

  1. 在什么状态我们需要开始planning
  2. 我们打算分配多少资源来给planning和real data collection
  3. 如何plan
  4. 如何将planning集成到learning的过程中

第一个问题:在什么状态我们需要开始planning

  • 随机:一个很直接的方法是在状态空间中随机选择一些状态。举例来说:Dynamic Programming,这个方法是选择所有的状态进行更新。这个方法的主要缺点是它不能scale到高维的问题,因为状态的个数和状态空间的维度呈现的是指数关系。
  • 访问过的:只更新那些先前访问过的可以达到的状态,典型的方法是Dyna
  • Prioritized:典型的方法是:Prioritized Sweeping,并且Prioritization在replay database中也很流行,但是通常这类方法并不被认为是model-based RL
  • current:仅在当前时刻的状态plan,这类方法强调了对当前操作的策略找到一个更好的解。

第二个问题:我们打算分配多少资源来给planning和real data collection

  • when to start planning: 主要考虑的是什么时候进行plan,是边采数据边plan,还是说采集完了一批数据后再进行plan,举了几种不同的算法进行说明,分别是Dyna,PILCO,batch reinforcement learning
  • How much time to spend on planning: 总计的planning effort由两个因素组成:第一个:
  • Adaptive trade-off:

第三个问题:如何plan

第四个问题:如何将planning集成到learning的过程中

implicit approach to model-based RL

Potential benefits of model-based reinfocement learning

未完待续。。。

If you like my blog, please donate for me.