PETS:伯克利大神Sergey Levine指导的概率集成轨迹采样算法

简介: PETS:伯克利大神Sergey Levine指导的概率集成轨迹采样算法
  • 论文题目:Deep Reinforcement Learning in a Handful of Trials using Probabilistic Dynamics Models

所解决的问题?


  基于模型的强化学习算法由于要使用一个深度神经网络去学习一个环境model,而纯神经网络这种大参数的近似函数求解会带来很多缺陷,比如说计算开销,对于环境的不确定性无法很好的表征,由于参数量比较大,其求解相对来说也并不会很容易。

  作者通过一个不确定的动态模型(uncertainty-aware dynamics models)来处理环境的不确定性,使得其能够相对来说不需要很大的神经网络来处理环境的不确定性。所提出的算法就是基于轨迹采样的概率集成算法,英文描述为probabilistic ensembles with trajectory sampling,简写为PETS。通过采样的不确定性来处理环境的动态模型的这样一种特性。


背景


  无模型强化学习算法最大的弊端就是采样昂贵,这就限制了其很大一部分应用都处于仿真领域,当然也存在一些极少数的例外,像2009年提出来的Policy search for motor primitives in robotics2016年提出来的End-to-end training of deep visuomotor policies

  很显然,由于模型采样成本极高,因此学一个模型就变得顺理成章,由此衍生出了一系列基于模型的强化学习文章。通过与所学的模型交互从而减少采样的复杂性。更细致地来说,是通过在所学模型中对未来发生的事情进行想象,专业术语叫做规划,planning

  基于模型的强化学习还有一个好处在于,它可以做到奖励独立,因为学的是状态转移。所以如果是在相同的环境中,而任务不同的话,他的泛化能力是非常强的。比如说,对于同一个机器人,对于某个特定的任务,奖励函数固定,而换了一个任务的话,奖励函数就改变了。这个时候如果还需要与环境进行交互采样的话,效率就未免太低了。

  因此从上述论述中不难发现,在基于模型的强化学习算法中,如何学一个模型是至关重要的,也就是说所构建模型的表征能力往往能决定基于模型的强化学习算法在最终性能上的表现。

  高斯过程对于model的不确定性表征具有极强的学习能力,而神经网络能够处理大规模高维的数据,但是对于少量数据容易过拟合。高斯函数也有弊端,就是基准分布是一个平滑的高斯核,而神经网络能够表达更复杂的函数近似。作者将二者结合,在基准控制任务中取得了SOTA的结果


所采用的方法?

大体思路


  如上图所示,Model是多个概率动态模型(上图中是两个),每一个动态模型都能够很好地去表征环境的不确定性。有了模型之后就可以往前进行轨迹采样(trajectory sampling)。规划的时候用MPC算法即可,计算出一个最优的动作序列,然后只采用这个最优序列的第一个动作,然后不断地进行规划。

  PETS能够处理的不确定性是两种:1. aleatoric:系统本身所带来的不确定性。2. epistemic:由于数据限制所带来的不确定性。


具体方法


  对于一个概率动态模型来说,下一个状态的条件分布可以表示为:

image.png

 因此如果学到了动态模型(dynamics modelf ~ \widetilde{f}f)的话,我们就通过给定候选动作序列去预测出一个状态轨迹的分布,再计算候所有选动作序列上的期望奖励就可以选出最优的动作序列。


  1. 概率神经网络(P PP):输出的神经元参数化为一个概率分布函数,用于处理aleatoric uncertainty,也就是环境模型本身带来的不确定性。其loss函数定义为:

image.png

此时的loss函数可以表示为:

image.pngimage.png

方差的输出可能为任意值,就可能产生非负的输出,导致后期的规划终端,因此做的时候常常会对其取个log,这样还是会有可能使得其坍缩为零,或者趋向于无穷大。作者在实验中发现,对其设置边界效果较好:

image.png

整体算法可表示为


代码实现


  1. tensorflow实现https://github.com/kchua/handful-of-trials
  2. pytorch实现https://github.com/quanvuong/handful-of-trials-pytorch
相关文章
|
28天前
|
机器学习/深度学习 算法 Python
随机森林算法是一种强大的集成学习方法,通过构建多个决策树并综合其结果进行预测。
随机森林算法是一种强大的集成学习方法,通过构建多个决策树并综合其结果进行预测。本文详细介绍了随机森林的工作原理、性能优势、影响因素及调优方法,并提供了Python实现示例。适用于分类、回归及特征选择等多种应用场景。
54 7
|
3月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
377 1
|
5月前
|
算法
基于kalman滤波的UAV三维轨迹跟踪算法matlab仿真
本文介绍了一种使用卡尔曼滤波(Kalman Filter)对无人飞行器(UAV)在三维空间中的运动轨迹进行预测和估计的方法。该方法通过状态预测和观测更新两个关键步骤,实时估计UAV的位置和速度,进而生成三维轨迹。在MATLAB 2022a环境下验证了算法的有效性(参见附图)。核心程序实现了状态估计和误差协方差矩阵的更新,并通过调整参数优化滤波效果。该算法有助于提高轨迹跟踪精度和稳定性,适用于多种应用场景,例如航拍和物流运输等领域。
356 12
|
7月前
|
算法 数据可视化
R语言马尔可夫MCMC中的METROPOLIS HASTINGS,MH算法抽样(采样)法可视化实例
R语言马尔可夫MCMC中的METROPOLIS HASTINGS,MH算法抽样(采样)法可视化实例
R语言马尔可夫MCMC中的METROPOLIS HASTINGS,MH算法抽样(采样)法可视化实例
|
6月前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】Voting集成学习算法:分类任务中的新利器
【机器学习】Voting集成学习算法:分类任务中的新利器
245 0
|
7月前
|
存储 机器学习/深度学习 算法
R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例
R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例
|
6月前
|
算法 计算机视觉
图像处理之Lanczos采样放缩算法
图像处理之Lanczos采样放缩算法
91 0
|
6月前
|
算法 计算机视觉
图像处理之基于采样距离变换算法
图像处理之基于采样距离变换算法
41 0
|
7月前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
123 3
|
7月前
|
算法 数据可视化 Python
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法