【RLchina第四讲】Model-Based Reinforcement Learning(上)

简介: 【RLchina第四讲】Model-Based Reinforcement Learning(上)

 深度强化学习有一个很大的不足点,它在数据采样效率上面是非常低的。

在机器学习里面的采样效率说的是:如果采用某个训练集,训练集的大小和模型的最终性能是有关系的,如果想达到某个性能的话,就需要多大量的训练数据。所以说不同的机器学习模型,或者说机器学习算法它需要多大量的数据其实是一个衡量这个模型好不好的一个关键指标。

  由于强化学习本身就是以一种试错型的方式进行学习的,这个方式的学习算法就导致深度强化学习具有比较低的采样效率。因为如果智能体采样出来的新的数据不是特别能够帮助更新你的Q-Value,或者是更新你的Policy,那么这个采样对于整个Agent来说是利用率非常低的。

基于模型的强化学习

  所以在1718年开始就有一个新的方向,Model-Based RLModel-Based90年代初其实就有学者对其进行过研究。像Q-PlanningDyna-Q都是最早期的Model-Based RLModel这个概念在强化学习里面其实是比较特殊的,在平时说训练监督学习、无监督学习等算法中model就是预测数据模型本身,而在强化学习中,最终的输出是通过策略π \piπ实现的,但是我们从来不会把ploicyπ \piπ称之为model。我们是把环境称之为model。所以在强化的算法或者论文中,我们一般称之为环境的模型,如果是策略本身,它就称之为policy

  MBRL基本的套路就是我们依据经验数据训练一个model,然后基于这个model我们就可以在所学的这个model上面进行进一步的学习,比如像生成一些数据也好,还是传递一些梯度也好,去训练policy。通过这种方式我们就不必与真实的环境做交互,从而获得性能的提升。而当policyπ \piπ发生了改变的话,那么它和环境交互出来的data的分布本身也会发生改变。

  通常来说环境提供两个部分:

  1. state dynamicp ( s ′ ∣ s , a ) p(s^{\prime}|s,a)p(ss,a)
  2. Reward functionr ( s , a ) r(s,a)r(s,a)。这个奖励可以是一个数值,也可以是一个采样出来的分布。

  当给定某个具体的policyπ ( a ∣ s ) \pi(a \mid s)π(as),和真实环境进行交互。环境进行上述两个条件概率分布计算p ( s ′ , r ∣ s , a ) p\left(s^{\prime}, r \mid s, a\right)p(s,rs,a),去得到交互出来的数据{ ( s , a , r , s ′ ) } \left\{\left(s, a, r, s^{\prime}\right)\right\}{(s,a,r,s)}

  然后基于这个交互出来的数据去训练我的Q值函数。如果是基于模型的强化学习的话,那么我们需要学一个world modelp ^ ( s ′ , r ∣ s , a ) \hat{p}\left(s^{\prime}, r \mid s, a\right)p^(s,rs,a)。此时交互出来的数据是一个仿真数据simulated data。基于模拟数据,我们可以用无模型强化学习算法MFRL来进行学习:

  通过这种方式,我们就绕开了与环境进行直接交互所带来的一些问题、弊端。

无模型RL V.S. 基于模型的RL

  • Model-based RL

  1. 一旦模型被学习到了,之后就可以用On-Policy的方式进行学习,可以一直无限次进行交互,能够避免Off-Policy带来的一些问题。2. 当然最大的好处还是极大地减少与真实环境的交互,像Batch RLOffline RL中就经常会采用到MBRL中的一些方法。3. 与MFRL相比具有较高的采样效率。4. 由于模型具有误差,那么会产生模型的累计误差。

  • Model-free RL

  1. 无模型强化学习最大的好处就在于它拥有最好的效果,因为所有的数据都是真实的。2. 有时候会显现出数据的不稳定性,因为数据本身的采样并不是基于某个期望下进行的,而是随着策略π \piπ改变而改变的。3. 缺陷就在于较低的采样效率,并且需要超大的算力平台。


基于模型的强化学习:黑盒模型和白盒模型


  所谓的黑盒模型说的是,训练的模型只是用来采样数据。它里面到底是如何去计算statereward,我们并不关心。我们只将其看作一个产生无穷无尽的训练数据的黑盒。然后我们产生完数据之后都是用model-free的方法来训练policy。像Dyna-QMPC、和MBPO这样一些经典的算法都是Blackbox的。

  另外一类算法是白盒模型,白盒模型相比于黑盒模型,他的区别在于state dynamicp ϕ ( s ′ ∣ s , a )已知。假设当前policy的参数是θπ θ 。我们可以直接优化states ssvalue值,对于states ′ 求导(不是对于V ( s ′ ) 的参数求导)。为什么可以对s ′ 求导呢?因为s ′ 可以看作p ϕ ( s ′ ∣ s , a ) 的输出,这个时候用链式法则就可以进一步对a 求导,a 此时又是policyπ θ 的输出了,于是我们又可以在policy上面再通过链式法则对θ 进行求导:

image.png

 所以一旦把这个盒子打开,变成了一个白盒的话,我们就可以使用概率密度梯度两种信息来进行学习。白盒模型也可以像黑盒模型一样去sample更多的data。这些工作有MAACSVGPILCO等等这些算法。

从Dyna算法介绍基于模型的强化学习

  学model的时候通常会采用supervised learning一类的算法进行学习。另外一类是通过计算状态转移分布p ϕ ( s ′ ∣ s , a ) 来实现的。如果我们学一个模型,然后构造(construct value function)的话,可能会带来两方面的误差,第一个是模型本身带来的误差,另外一个是value function带来的误差。

  1. Q-Planning

  首先通过随机的智能体采样得到数据,然后学一个modelp ^ ( s ′ , r ∣ s , a ) 。之后要做的是:

  选择一个状态S 和一个动作A ,然后将其送入sample model中去,去获得下一个奖励reward和下一个状态S ′ 。这样通过S A 就构建了一个四元< S , A , R , S ′ > 。有了这样一个四元组之后,我们就可以去做Q-Learning

  1. Dyna

  Dyna-Q中还可以通过实际环境中获得的经验做学习。

  拿到一个状态S ,然后依据Q 函数探索得到一个动作A 。有了这个采样到的动作之后,我们将其在真实环境中执行,得到真实的奖励R RR和真实的下一个状态S 。这样也能获得一个四元组,之后就可以依据更新公式对Q 函数进行进一步的更新。之后在假定模型是确定行环境的时候,我们直接就可以依据数据训练Model了。

  之后重复n 步,从之前的观测状态S 中随机选择一个,之后从动作A 中随机选择一个,依据模型M o d e l ( S , A ) 计算得到奖励和下一个状态,再做一步Q 更新。所以在Dyna-Q中做的是1步的MFRLn 步的MFRL但是每次模型只往前推进一步

基于模型的强化学习有几个很重要的问题

  1. 基于所学的这样一个非完美模型能不能改进我们的数据效率呢?
  2. 基于深度学习所训练的环境模型肯定不是那么准确的,这个时候我们还能不能去相信我们的模型呢?如何去相信模型采样所得到的数据呢?
  3. 如何使用我们的模型,从而获得更好的策略呢?


随机打靶算法:RS,PETS,POPLIN


  在有了模型之后,能不能在近乎不学习policy的情况下能够去获得比较高的性能。因为我们有模型,这样我们就能从模型中直接进行搜索,得到最好的action

  有了model之后,通过做任何形式的action,模型都会给予反馈,告诉你当前这个决策好不好。shooting method说的就是给定当模型p ( s ′ , r ∣ s , a ) ,对于每个状态前states ,和一个候选(candidate)动作a 。可以构建一个长度为T TTaction sequence


image.png

  有了状态和所有的动作序列之后,就可以和环境进行交互,产生相应的episode

image.png

 基于上述采样样本,我们可以估计Q 值函数并得到策略π ( s )


image.png

 这个时候我们根本就没学习,有了一个模型之后,之后模拟计算,走到终局或者指定的T TT步,看看哪个候选动作a aa能够获得较大的收益,就选哪个。当智能体走到了真正的s 1 s_{1}s1之后再做一遍这个操作。这个也叫做MPC

Random Shooting(RS)

  在RS算法中,action sequence是随机采样得到的,它有一些好处,第一个好处就是这个action sequence它可以非常简单得到。它甚至不管你的state是啥,先可以把动作序列给做出来。在这个过程中是不做学习的,没有梯度的计算。它也不太需要去考虑task到底有多长这样。

  同样这种做法带来的坏处也很明显,像variance就很大,因为搜索的空间很大,而只采样了一条。一种可行的办法就是说,我们把每个action不看它state的情况下,整体来看它到底能带来更大的value还是更低的value。给它做成像一个二分类一样的东西,叫cross entropy method。就是对action做一些简单的分堆,采样的时候就期望去采样得到高reward或者高valueaction。这种方法与完全随机采样相比是能够获得更好的reward的。


PETS:Probabilistic Ensembles with Trajectory Sampling


  在2018年的NIPS上面发表了一篇RS类算法的文章PETS。它拿一系列可训练的高斯模型做了一个ensemble


image.png

  每一个高斯模型去采样下一个state的时候,他就是去follow一个mean和一个variance matrix。做一个Gaussian NN


image.png


本身的μ θ Σ θ都是用θ 参数化的神经网络。当给定当前s t , a t ,我就可以确定性地去计算到μ ,基于这个μΣ 我就可以采样接下来的这个s t + 1

  从上述论述我们可以看到每个模型都是一个Gaussian NN,我们有N NN个高斯做了一个Ensemble操作。这里其实是通过集成学习降低模型的variance,这里的variance并不是Σ \SigmaΣ,而是一些没有见过的数据导致的泛化性能的variance

  当我们有了N 个高斯的概率模型之后,我们就可以用这N 个概率模型去做trajectory sampling(TS)。这里所采样的trajectory sampling的方法其实是比较特殊的。因为我们有N 个高斯模型,所以我们可以直接采样出来一个高斯模型,走一步,得到一个新的高斯分布,在这个高斯分布里面,我们再采样一个新的state,接下来我们又要走下一步,走下一步的时候,我们又从这N NN个高斯模型里面去采样,这样就能够实现trajectory的前向传播。基于这N NN个高斯模型,我们就可以去做planning。在每一个time step上,MPC算法通过采样去计算多个最优动作序列,之后采用第一个action,然后重复上述的规划任务。这样的一种算法就称作Planning via Model Predictive Control



  这里采样获取动作的时候,采用的是CEM的方式来获取相对来说比较好的action。然后对每个动作序列去做一个评估,之后更新CEM。但是最终对于环境的执行来说,是执行最好的动作序列a t *中的第一个action。采样得到的数据重新加入到数据集中去。


相关文章
|
7月前
|
机器学习/深度学习 JSON 自然语言处理
[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training
[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training
118 1
|
机器学习/深度学习 算法
【RLchina第四讲】Model-Based Reinforcement Learning(下)
【RLchina第四讲】Model-Based Reinforcement Learning(下)
190 0
|
机器学习/深度学习 人工智能 算法
【5分钟 Paper】Reinforcement Learning with Deep Energy-Based Policies
【5分钟 Paper】Reinforcement Learning with Deep Energy-Based Policies
125 0
|
算法 Go
【5分钟 Paper】Continuous Control With Deep Reinforcement Learning
【5分钟 Paper】Continuous Control With Deep Reinforcement Learning
|
机器学习/深度学习 编解码 算法
【5分钟 Paper】Dueling Network Architectures for Deep Reinforcement Learning
【5分钟 Paper】Dueling Network Architectures for Deep Reinforcement Learning
121 0
|
机器学习/深度学习 开发框架 数据建模
HiCLRE: A Hierarchical Contrastive Learning Framework for Distantly Supervised Relation Extraction
远程监督假设任何包含相同实体对的句子都反映了相同的关系。先前的远程监督关系抽取(DSRE)任务通常独立地关注sentence-level或bag-level去噪技术
178 0
|
机器学习/深度学习 编解码 数据可视化
Speech Emotion Recognition With Local-Global aware Deep Representation Learning论文解读
语音情感识别(SER)通过从语音信号中推断人的情绪和情感状态,在改善人与机器之间的交互方面发挥着至关重要的作用。尽管最近的工作主要集中于从手工制作的特征中挖掘时空信息,但我们探索如何从动态时间尺度中建模语音情绪的时间模式。
146 0
|
机器学习/深度学习 存储 自然语言处理
【论文解读】A review on the attention mechanism of deep learning
注意力已经成为深度学习中最重要的概念之一。本文旨在对近年来提出的最新注意力模型作概述。我们建立了一个较为通用的模型,此外根据四个标准即注意力的柔软性、输入特征的形式、输入表示和输出表示来对当前注意力模型进行分类。最后讨论了注意力在深度学习可解释上的作用。
946 0
|
机器学习/深度学习 移动开发 数据挖掘
Understanding Few-Shot Learning in Computer Vision: What You Need to Know
Few-Shot Learning is a sub-area of machine learning. It’s about classifying new data when you have only a few training samples with supervised information. FSL is a rather young area that needs more research and refinement. As of today, you can use it in CV tasks. A computer vision model can work
182 0
Understanding Few-Shot Learning in Computer Vision: What You Need to Know
|
机器学习/深度学习 算法 数据挖掘
A Generative Adversarial Network-based Deep Learning Method for Low-quality Defect ImageReconstructi
本文提出了一种基于生成对抗网络 (GAN) 的 DL 方法,用于低质量缺陷图像识别。 GAN用于重建低质量缺陷图像,并建立VGG16网络识别重建图像。
153 0