万字离线强化学习总结!(原理数据集算法复杂性分析超参数调优等)轨迹智能体

强化学习发展的特别早,但一直不温不火,其中Sutton老爷子早在1998年就写了强化学习领域的圣经书籍:AnIntroduction:ReinforcementLearning,但也并未开启强化学习发展的新局面。

直到2012年,深度学习广泛兴起,大规模的神经网络被成功用于解决自然语言处理,计算机视觉等领域,人工智能的各个方向才开始快速发展,强化学习领域最典型的就是2013年DeepMind公司的VolodymyrMnih发表PlayingAtariwithDeepReinforcementLearning(DQN技术),可以说开启了深度强化学习技术发展的新高潮,2015年该论文的加强版Human-levelcontrolthroughdeepreinforcementlearning登上Nature,以及2016年Nature上的AlphaGo:MasteringthegameofGowithdeepneuralnetworksandtreesearch充分证明了深度强化学习技术的发展潜力。

传统的强化学习和监督学习、非监督学的区别在于,后两者是通过从已标记(Label)和无标记的数据中学习一套规律(我们可以理解为学习一个函数表达式),而前者强化学习则是通过行为交互来学习一套策略,以最大化累计期望奖励,结构如图所示:

其学习过程可以归纳为通过agent获取环境状态,根据自身学习到的知识做出action反馈给环境,并得到一个奖励,不断地迭代出一个可以一直玩游戏并且不会死的智能体。原理就是从一个四元组$$中学习出策略,不论出发点在哪里都可以得到一个最优的轨迹(trajectory)模型(不论起点,目前测试中一般通过多个随机seed去测试),具体可以参考博主的另外篇博文深度强化学习简介.

1.1.1On-Policy和off-Policy区别

On-policy和Off-policy这两个词在强化学习领域非常重要,知乎上有很多关于其讨论强化学习中on-policy与off-policy有什么区别?,最典型的莫过于李宏毅老师下棋形象例子解释,还可以从以下方式解释:

【补充】两者在学习方式上的区别:若agent与环境互动,则为On-policy(此时因为agent亲身参与,所以互动时的policy和目标的policy一致);若agent看别的agent与环境互动,自己不参与互动,则为Off-policy(此时因为互动的和目标优化的是两个agent,所以他们的policy不一致)。两者在采样数据利用上的区别:On-policy:采样所用的policy和目标policy一致,采样后进行学习,学习后目标policy更新,此时需要把采样的policy同步更新以保持和目标policy一致,这也就导致了需要重新采样。Off-policy:采样的policy和目标的policy不一样,所以你目标的policy随便更新,采样后的数据可以用很多次也可以参考。

其实最经典的莫过于Sutton老爷子Introduction中的解释:

原文:On-policymethodsattempttoevaluateorimprovethepolicythatisusedtomakedecisions,whereasoff-policymethodsevaluateorimproveapolicydifferentfromthatusedtogeneratethedata.

此外莫过于Q-learning和sarsa算法的解释

最终总结一下两者的优缺点:

on-policy优点是直接了当,速度快,劣势是不一定找到最优策略。off-policy劣势是曲折,收敛慢,但优势是更为强大和通用。

1.1.2Online和Offline学习的本质

监督学习中通常利用已知(已标记)的数据进行学习,其本质是从数据中总结规律,这和人从学1+1=2基本原理一致,强化学习的过程也是如此,仍然是从数据中学习,只不过强化学习中学习的数据是一系列的轨迹

所以重点来了,这里的数据才是最关键的一部分,这也强化学习中Online和offline学习中的关键,Online一方面是与环境有交互,通过采集数据学习、然后丢弃,而offline则是不用交互,直接通过采集到的轨迹数据学习,这也是off-policy到offline转换的重要原因。

1.2落地应用的困难?

目前atari,mujoco物理引擎等各类游戏中的模拟数据很轻松拿到,这也就是目前强化学习在游戏领域非常成功的原因之一,也是各种stateoftheart刷榜的体现,因为游戏数据可以很轻松就100million,总结起来就是

有模拟器,易产生数据,好用!

但强化学习在落地过程中就可能遇到很多问题,比如下图这个大家伙,

总不可能让他产生100million数据吧(不知道他的额定寿命是多少次),因此产生如下几个问题:

所以有这样的方法吗?

答案:有,OfflineRL,此处有矿,赶紧来挖!

2.离线强化学习

离线强化学习最初英文名为:BatchReinforcementLearning[3],后来SergeyLevine等人在其2020年的综述中使用了OfflineReinforcementLearning(OfflineRL),现在普遍使用后者表示。下图是离线强化学习近年来论文的发表情况,间接反应发展状态。

2.1离线强化学习原理

OfflineRL可以被定义为data-driven形式的强化学习问题,即在智能体(policy函数?)不和环境交互的情况下,来从获取的轨迹中学习经验知识,达到使目标最大化,其和Online的区别如图所示:

后来Sergey在论文中归纳如下图所示:

本质上,智能体是通过静态的数据集$

去对进行充分的理解,并构造一个策略\pi(a|s)在实际交互中获得最多的累计奖励本文用\pi_{\beta}表示数据集D中的状态和动作分布,且s,a\inD,s\simd^{\pi_{\beta}}(s),而动作a\sim\pi_{\beta}(a|s)是根据行为策略采样而来那么最终的学习目标标成了最大化J(\pi)$

2.2离线强化学习分类及区别2.2.1如何判断OfflineRL

图中很明确的从数据可否store以及reused解释了是纯Online还是offline,以及使用经验回放的NFQ等,其本质还是是否利用trajectory去学习优化模型。

模仿学习(ImitationLearning,IL)是指通过从专家(通常指人类的决策数据)提供的范例中学习,,每个决策包含状态和动作序列$\tau_{i}=,将所有「状态动作对」抽取出来构造新的集合\mathcal{D}=\left\{\left(s_{1},a_{1}\right),\left(s_{2},a_{2}\right),\left(s_{3},a_{3}\right),\ldots\right\}$。之后就可以把状态作为特征,动作作为标记进行离散动作/连续动作的学习而得到最优的策略模型,模型的训练目标是使模型生成的状态-动作轨迹分布和输入的轨迹分布相匹配,最典型的就是自动驾驶的例子(此过程中一般称为行为克隆behaviorclone)。

另外一方面在数据组成方面有如下区别:

2.3离线强化学习很难学习的原因2.3.1无法探索(Explore)

强化学习在与环境中交互学习的过程中,最关键的一个问题便是“ExplorationvsExploitationDilemma”,Exploration是为了收集更多信息(尝试一些不可能等),而Exploitation则根据当前信息做出最佳决策,正如Sliver总结的:

这两者可以说对一个算法的训练精度、速度等各方面有重要影响,而OfflineRL算法中需要完全的依赖于静态数据集,但是没有办法提高exploration,因为不和环境进行交互,就无法知道探索得到的数据是否有效,是否有高质量的奖励反馈等,所以OfflineRL不可能通过探索发现高奖励的区域。而且,并没有办法解决此问题,这就变成了2.3.2中的经验最小化的问题了

2.3.2数据质量(拟合与过拟合)

深度学习的成功可以归结为数据集(ImageNet等)的准确强大,offlineRL也不例外,思考以下问题:

这个问题其实Fujimoto在2019年的时候就提到了(如图所示),但直到现在仍然对OfflineRL算法的训练非常大的影响。

备注:Finalbuffer:trainaDDPGagentfor1milliontimesteps,addingN(0,0.5)Gaussiannoisetoactionsforhighexploration,andstoreallexperiencedtransitions.Concurrent:traintheoff-policyandbehavioralDDPGagents,for1milliontimesteps.Toensuresufficientexploration,astandardN(0,0.1)Gaussiannoiseisaddedtoactionstakenbythebehavioralpolicy.2.3.3分布偏移(Distributionshift)2.3.3.1关于分布偏移

分布偏移(Distributionshift)在监督学习中一般指的是训练分布与测试分布不同,在离线强化学习中指的是训练策略与行为策略不一致。(Distributionshifts,inwhichthetrainingdistributiondiffersfromthetestingdistribution,trainingpolicyareinconsist:entwithbehavioralpolicyinofflinereinforcementlearning.),下面我们进行解释

在监督学习中,训练一个模型通常追求经验风险最小化(EmpiricalRiskMinimization,ERM),即:

那么问题就变成了:如何在不同的下能够同样能够达到

同样的情况,在OfflineRL中obejctive函数则变成了:

其中的是我们从offlinedata中学习的策略,而我们希望,这样就可以达到学习目的了。

总结起来就是:别走偏了,每一步都尽量让两个分布之间距离最小化的问题,不然累计起来不知道走哪里(有点TRPO的感觉)

2.3.3.2分布偏移对OfflineRL算法收敛的影响

下面是一些2012年前的offlinereinforcementlearning算法,最新的算法将在后面博客中详解。

至此,关于offlineRL的简介到这里,下一篇是关于offlineRL中常用(最典型)的数据集D4RL的安装过程以及其中遇到的一些坑,以及如何设计一个高效的OfflineRL算法

关于D4RLBenchmarks数据集[Github],[Paper]

2.5为什么选择D4RL?

(1)D4RL收集了大型数据集,包括交互式环境中智能体的记录(即自动驾驶Carla、AntMaze、Mujoco等),且有简单和复杂分类,种类非常丰富,例如:

(2)D4RL提供了非常简单的API接口,方便于学习者直接去获取数据集完成智能体的训练。

importd4rl#Importrequiredtoregisterenvironmentsenv=gym.make('maze2d-umaze-v1')dataset=env.get_dataset()

(3)D4RL定义了标准的衡量指标

(4)D4RL提供了丰富的baseline基准,包括了常见的Offline算法,包括BCQ、BEAR、BRAC等等

D4RL数据集目前来说是离线强化学习涵盖数据集非常丰富的一个数据集,数据质量非常高。其中最主要的是数据的采集综合了6类因素

2

D4RL安装与使用

2.1官方安装指导(有坑)

D4RL的安装相对来说比较容易,但其中也有很多的坑

另外一种简单的安装方法

其中会有很多坑,导致安装失败。

下面我们根据初始化安装文件setup.py分析安装

fromdistutils.coreimportsetupfromplatformimportplatform

fromsetuptoolsimportfind_packages

setup(name='d4rl',version='1.1',install_requires=['gym','numpy','mujoco_py','pybullet','h5py','termcolor',#adept_envsdependency'click',#adept_envsdependency'dm_control'if'macOS'inplatform()else'dm_control@git+git://github.com/deepmind/dm_control@master#egg=dm_control','mjrl@git+git://github.com/aravindr93/mjrl@master#egg=mjrl'],packages=find_packages(),package_data={'d4rl':['locomotion/assets/*','hand_manipulation_suite/assets/*','hand_manipulation_suite/Adroit/*','hand_manipulation_suite/Adroit/gallery/*','hand_manipulation_suite/Adroit/resources/*','hand_manipulation_suite/Adroit/resources/meshes/*','hand_manipulation_suite/Adroit/resources/textures/*',]},include_package_data=True,)

2.2有效安装过程(避坑)

上述过程安装后我们会发现遇到很多问题,下面我就自己的安装过程以及遇到的问题一一列举

安装环境:Ubuntu18.04,anaconda3

第一步:安装mujoco210(针对没有安装mujoco)

#测试cd~/.mujoco/mujoco210/bin/./simulate../model/humanoid.xml

解决办法:

(1)下载mujoco211安装包,解压

(2)在mujoco210/lib下找到libmujoco.so.2.1.1,并复制在~/.mujoco/bin在~/.bashrc下

(3)添加环境变量并source

exportMJLIB_PATH=~/.mujoco/lib/libmujoco.so.2.1.1source~/.bashrc

第二步:安装mujoco_py

#本步跳过conda环境创建,直接进入虚拟环境(condacreate-nd4rlpython=3.7)condacreate-nd4rlpython=3.7condaactivated4rlpipinstallmujoco_py

pythonPython3.7.11(default,Jul272021,14:32:16)[GCC7.5.0]::Anaconda,Inc.onlinuxType"help","copyright","credits"or"license"formoreinformation.>>>importmujoco_py>>>#备:没有报错表示安装成功

sudoaptinstalllibosmesa6-dev#补充命令:sudoapt-getinstalllibgl1-mesa-glxlibosmesa6

坑3:如果是fatalerror:GL/glew.h:Nosuchfileordirectory,那么就安装Glew库

解决办法

sudoapt-getinstalllibglew-devglew-utils

坑4:如果是FileNotFoundError:[Errno2]Nosuchfileordirectory:'patchelf':'patchelf',那就安装patchelf

sudoapt-get-yinstallpatchelf

安装成功是这样的效果

pipinstalldm_control

第四步:安装d4rl

克隆D4RL仓库

找到到d4rl目录下的setup.py文件,注释mujoco_py,dm_control

install_requires=['gym','numpy',#'mujoco_py','pybullet','h5py','termcolor',#adept_envsdependency'click',#adept_envsdependency#'dm_control'if'macOS'inplatform()else#'dm_control@git+git://github.com/deepmind/dm_control@master#egg=dm_control','mjrl@git+git://github.com/aravindr93/mjrl@master#egg=mjrl'],

然后直接安装并测试

#installingpipinstall-e.

#测试,创建test_d4rlpy.py并添加如下内容vimtest_d4rl.py

importgymimportd4rl#Importrequiredtoregisterenvironments

#Createtheenvironmentenv=gym.make('maze2d-umaze-v1')

#d4rlabidesbytheOpenAIgyminterfaceenv.reset()env.step(env.action_space.sample())

#Eachtaskisassociatedwithadataset#datasetcontainsobservations,actions,rewards,terminals,andinfosdataset=env.get_dataset()print(dataset['observations'])#AnNxdim_observationNumpyarrayofobservations

#Alternatively,used4rl.qlearning_datasetwhich#alsoaddsnext_observations.dataset=d4rl.qlearning_dataset(env)

pythontest_d4rlpy.py

坑5:如果遇到:下面问题,那就单独安装mjrl

ERROR:Couldnotfindaversionthatsatisfiestherequirementmjrl(unavailable)(fromd4rl)(fromversions:none)ERROR:Nomatchingdistributionfoundformjrl(unavailable)

安装命令

最后的D4RL安装结果结果

最后贴出我的~/.bashrc文件,欢迎参考

#cuda、anaconda等环境变量可以设置在本部分以前#环境变量次序也很重要

#mujoco(这里我安装了两部分)exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.mujoco/mujoco210/binexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.mujoco/mujoco211/bin

exportMUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}exportMJLIB_PATH=~/.mujoco/lib/libmujoco.so.2.1.1

#nvidiaexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia

exportLD_PRELOAD=~/anaconda3/envs/d3rlpy/lib/python3.7/site-packages/d3rlpy/dataset.cpython-37m-x86_64-linux-gnu.so#exportLD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-465/libGL.so

exportLD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so

坑6:有的伙伴可能会用pycharm去运行mujoco会出现一个问题就是:有nvidia的环境变量没有mujoco的,有mujoco的没有nvidia的

Exception:Missingpathtoyourenvironmentvariable.CurrentvaluesLD_LIBRARY_PATH=Pleaseaddfollowinglineto.bashrc:exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jqw/.mujoco/mujoco210/bin

#或者这样的Exception:Missingpathtoyourenvironmentvariable.CurrentvaluesLD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/lib/nvidiaPleaseaddfollowinglineto.bashrc:exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jqw/.mujoco/mujoco210/bin

直接在pycharm运行配置中修改环境变量:python文件上右键后进入ModifyRunConfiguration

image-20220328180705232

重点就是两个变量之间用冒号隔开":",不是分号";",然后就ok了

PYTHONUNBUFFERED=1;LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/lib/nvidia:$LD_LIBRARY_PATH:/home/jqw/.mujoco/mujoco210/bin

TD3+BC算法详解

论文信息:ScottFujimoto,ShixiangShaneGu:“AMinimalistApproachtoOfflineReinforcementLearning”,2021;arXiv:2106.06860.

其实上述的这些问题并不是去解决offlineRL中的一些诸如分布偏移、OOD、过估计以及等等这些问题,而是去解决如何简单、快速、高效的实现算法的实现与高效运行问题,因此作者面对这些问题,发出疑问并给出方法:

2.TD3+BC原理2.1TD3+BC相比于其他的优势

下图是TD3+BC算法相对于CQL、Fish-BRC算法的复杂性对比,从表中我们可以看到CQL和Fish-BRC在算法(algorithmic)上有了很多的变种,使用生成网络,近似等,而TD3+BC仅仅添加了一个BCterm和Normalizedstate,足够的简单。

2.2理论部分

对于经典的DDPG、TD3等算法来讲,策略梯度的计算根据Davidsliver提出的如下定义,即求解状态-动作值函数的期望值。

本文中,作者为了尽可能的让两个动作接近添加了一个正则项以及,

个人看法:有点像BCQ中的让学习策略和行为策略之间的距离减少那种意思,只不过添加到正则项里面.

另外一个技术点就是从代码执行层面的优化,即NormalizeState,具体的Normalize过程如公式所示:

其中的表示一个normalization常量,作者在文中使用了,和表示期望和标准差(standarddeviation)。

实验效果(关于纵坐标Percentdifference后文有说明,本部分只看效果)

最后一个技术点就是关于的求解,作者给出了计算公式,并在后文中说取值为的时候效果最好,实验部分有作者做的ablation实验证明。

最后贴出作者在TD3代码上的改动部分==》TD3+BC算法实现

2.3经典的Rebuttal场面

此外,我们看一下作者如何rebuttle这些OpenReview提出的审稿意见[1],[2]

其实这部分蛮有意思的,我们发现大多数普通人的工作还是集中在对算法的小部分优化(数学大佬和代码大神略过),这里作者教你手把手给审稿人回复(建议收藏,热别是第2条)

下面我们看作者的神奇巧妙回复

挺有意思的,学习收藏吧!

3.实验及过程分析3.1实验超参数

这部分是作者实验的一些基础,挺良心的,具体到了每一个实验环境的版本号

这部分特意说明一下作者的良心部分:代码版本都放出来了

3.2衡量指标:百分比差异(PercentDifference)

3.3实验验证与结果简要分析

说明:关于D4RL数据集的组成、安装和解释请参考博文离线强化学习(OfflineRL)系列2:(环境篇)D4RL数据集简介、安装及错误解决

本实验参数HC=HalfCheetah,Hop=Hopper,W=Walker,r=random,m=medium,mr=medium-replay,me=medium-expert,e=expert.Whileonlinealgorithms(TD3)typicallyhavesmallepisodevariancespertrainedpolicy(astheyshouldatconvergence),3.3.1D4RL验证讨论

3.3.3消融(ablation)实验(如何确定)

这部分其实对比了vanillaBC方法和区别,同时就参数做了对比得出了最好的。

分布偏移最主要的原因是learnedpolicy和behaviorpolicy之间的偏移(从图中我们可以清晰的看到两者之间的区别),这也是offlineRL相比于OnlineRL在不能交互学习的情况下造成的。

2.2OOD(out-of-distribution)action问题

OOD问题在OfflineRL中非常常见,简单的可以理解为状态-动作对可能不在我们的offlineDataset中,对应的分布也一样,即学习分布远在(faroutside)训练(trainingdistribution)分布之外。

结合上图,其实真正解决这个问题,第一直观的想法就是增大数据集的数量,让数据集尽可能包含训练分布,这样学习分布基本可能会在范围内,然而这个方法并不奏效:

作者在实验中使用了大小不一样的数量实验,结果表明即使增大trainsamples,算法的性能并没有得到有效提升,同时也会引发下一个累计误差问题:

此外Q值误差居高不下,是什么原因造成的?

2.3贝尔曼误差(Bellmanerror)

我们在OnlineRL中知道,最优函数遵循最优贝尔曼方程,如下所示:

然后,强化学习对应于最小化该等式左侧和右侧之间的平方差,也称为均方贝尔曼误差(MSBE),得到:

MSBE在由行为策略生成的数据集中的转换样本上最小化。尽管最小化MSBE对应于有监督的回归问题,但该回归的目标本身是从当前函数估计中得出的。于是对于迭代次的Q-learning来说,总误差(error)可以定义为:

其中当前的贝尔曼误差(Bellmanerror)为:

那么我们就可以得出以下结论:

所以说,当一个状态-动作分布处于OOD之外时,我们其实是希望很高,因为我们的优化目标是不断将处于分布之外的策略分布与训练分布距离最小化。为了缓解这个问题,作者提出了一个解决方法就是让学习策略输出的动作处于训练分布的支撑集(Support-set)中。

所谓的Support-set,其实就是"学习策略只有在行为策略的密度大于阈值,而不是对密度和的值的接近约束。"原话:

下面我们结合例子解释一下分布匹配(Distribution-matching和支撑集匹配(Support-setmatching)的区别,以及原理。

3.从一个例子原因分析开始

考虑一维的LineworldEnvironment问题,我们从点出发到达点,动作集分为“向左”和“向右”两种,对应的奖励在上图中有标记。

个人理解原因3.1Distribution-matching

3.2Support-constraint

那么为什么Distribution-matching在这里会失败?

通过上述分析,我们得出一个结论:我们希望的不是学习策略和行为策略越像越好,而是学习策略能够在行为策略的支撑集的范围内去进行优化,如果学习策略和行为策略无限接近那不就是Behaviorclone了,但offline无法无限的去逼近online,所以问题仍然存在。

下图就是关于Distribution-matching和supportconstraint选择动作的区别

从图中我们可以看到:以红色的行为策略为基准,在distribution-matching中则仅有紫色的学习策略相符,但在support-matching中黄色的都是可以匹配的learnedpolicy,所以更通用。

那么support-setmatching更通用,具体是怎么matching的呢?下文我们从论文的理论部分开始分析。

4.理论设计及分析(核心:建议阅读)4.1Support-setMatching(支撑集匹配方法)4.1.1支撑集匹配原理

第一步:解决策略集定义及收敛,定义Distribution-constraintoperators概念,如下所示:

这里面最关键的有以下几个地方:

为了分析在近似误差下执行backup的次优(suboptimality)问题,作者提出两个方面:

这里定义了一个Concentrability,【越小,就说明policyset中的policy与behaviorpolicy越相似】

第二步:最后作者给出了一个边界(bound)

证明过程如下:

这里的[ErrorBoundsforApproximateValueIteration]中解释了

Wechoosepoliciesonlylyinginhighsupportregionsofthebehaviourpolicy.Allowsforatradeoffbetween:Keepingclosetothedata(minimizingamountofpropagatederror)Havingfreedomtofindtheoptimalpolicy

这里作者不是对所有策略执行最大化,而是对集合Pi_eps执行受限最大值,为了实际执行此操作,使用执行支撑匹配的约束。

其中作者原话是:

Wechangethepolicyimprovementstep,whereinsteadofperformingamaximizationoverallpolicies,weperformtherestrictedmaxoverthesetandinordertodothispractically,weuseaconstrainedformulation,whereweuseaconstraintthatperformssupportmatching.Weconstrainthemaximummeandiscrepancydistancebetweenthedatasetandtheactortoamaximallimit,usingsamples.4.1.2为什么要从选取动作?

通过以上的方法,问题最终化解为一个求解最优问题:

4.2MaximumMeanDiscrepancy(MMD)4.2.1MMD原理

MMD[AKernelTwo-SampleTest]方法是一种统计测试以确定两个样本是否来自不同的分布,检验统计量是再现kernelHilbertspace(RKHS)的单位球中函数的最大期望差异。

4.2.2MMD代码求解

defgaussian_kernel(x,y,sigma=0.1):returnexp(-(x-y).pow(2).sum()/(2*sigma.pow(2)))

defcompute_mmd(x,y):k_x_x=gaussian_kernel(x,x)k_x_y=gaussian_kernel(x,y)k_y_y=gaussian_kernel(y,y)returnsqrt(k_x_x.mean()+k_y_y.mean()-2*k_x_y.mean())

4.2.3与KLdivergence的区别

4.3双梯度下降(DualGradientDescent)(可跳过)4.3.1DGD原理及图解[DualGradientDescent]

双梯度下降是一种在约束条件下优化目标的流行方法。在强化学习中,它可以帮助我们做出更好的决策。

5.BEAR算法执行过程5.1BEAR原版

5.2BEAR修补版

6.部分结果分析

7.Pytorch代码实现部分浅析

本代码由原作者开源[Github]

7.1Installing&running

pythonmain.py--buffer_name=buffer_walker_300_curr_action.pkl--eval_freq=1000--algo_name=BEAR--env_name=Walker2d-v2--log_dir=data_walker_BEAR/--lagrange_thresh=10.0--distance_type=MMD--mode=auto--num_samples_match=5--lamda=0.0--version=0--mmd_sigma=20.0--kernel_type=gaussian--use_ensemble_variance="False"

THE END
1.人工智能三大算法机器学习深度学习与强化学习的融合与应用前景人工智能三大算法的概述 人工智能(AI)作为一个多学科交叉领域,其核心在于模拟人类智能行为。随着技术的发展,人们提出了许多不同类型的人工智能方法,其中机器学习、深度学习和强化学习是其中最为重要的三个子集,它们分别代表了从基础到高级别的人工智能技术。 机器学习https://www.xstkmqmgl.cn/zhi-neng/481943.html
2.多智能体强化学习知乎mob6454cc70863a的技术博客多智能体强化学习知乎,系统简介基于ROBO-MAS多智能体自主协同高频投影定位系统通过采用ROBO-MAS桌面型群体智能机器人,在小型实验场地内通过高频光电投影定位技术实现机器人位置感知和数据通讯,实现“开放式群体智能研究和多智能体自主协同”的研究目标。系统为群体智能研https://blog.51cto.com/u_16099271/12897860
3.深度强化学习离线强化学习(OfflineReinforcementLearnin应用场景:在线强化学习适用于那些需要实时决策和快速适应环境变化的任务,比如机器人控制、自动驾驶等。 离线强化学习更侧重于利用预先收集好的数据进行策略学习,而在线强化学习则更侧重于通过与环境的交互实时地学习和优化策略。https://blog.csdn.net/qq_40718185/article/details/139231769
4.机器学习——强化学习与深度强化学习腾讯云开发者社区近年来,强化学习(Reinforcement Learning, RL)在多个领域取得了巨大的进展。从早期简单的迷宫导航问题到今天 AlphaGo 击败围棋世界冠军,强化学习的潜力得到了充分展现。而随着深度学习的引入,深度强化学习(Deep Reinforcement Learning, DRL)更是将这一技术推向了前.https://cloud.tencent.com/developer/article/2455966
5.科学网—[转载]群视角下的多智能体强化学习方法综述多智能体深度强化学习方法结合了深度学习、强化学习与多智能体系统理论等技术,赋予智能体更强的感知、推理、决策和学习能力,并在许多应用场景中展现出强大的潜力。目前,国内外相关领域学者从不同视角对多智能体强化学习的相关研究进行了综述分析。Yang等人[1]借助博弈理论相关知识,研究了基于博弈(特别是元博弈)理论的https://blog.sciencenet.cn/home.php?mod=space&uid=3472670&do=blog&id=1422698
6.2020届计算机科学方向毕业设计(论文)阶段性汇报深度学习在视频分析中的应用 在本次汇报中,我将介绍毕设课题选定的视频分析具体任务:时序动作检测(Temporal Action Proposal)的相关内容,包括任务背景、最近研究成果、数据情况以及切入点等。我还将汇报过去一阶段的工作内容和下一阶段的工作计划。 范舟 基于强化学习的推荐与广告合并算法设计 https://zhiyuan.sjtu.edu.cn/html/zhiyuan/announcement_view.php?id=3709
7.基于深度强化学习的水面无人艇路径跟踪方法6.针对上述现有技术的不足,本发明所要解决的技术问题是:如何提供一种基于深度强化学习的水面无人艇路径跟踪方法,无需进行环境和无人艇运动建模并且具备自适应能力,从而能够进一步提高无人艇路径跟踪控制的稳定性和准确性。 7.为了解决上述技术问题,本发明采用了如下的技术方案: https://www.xjishu.com/zhuanli/54/202210772926.html/
8.ICLR上新强化学习扩散模型多模态语言模型,你想了解的前沿本周,全球最负盛名的人工智能盛会之一 ICLR 大会将在奥地利维也纳举办。所以,今天的“科研上新”将为大家带来多篇微软亚洲研究院在 ICLR 2024 上的精选论文解读,涉及领域涵盖深度强化学习、多模态语言模型、时间序列扩散模型、无监督学习等多个前沿主题。 https://www.msra.cn/zh-cn/news/features/new-arrival-in-research-11
9.语义分割和强化学习在自动驾驶中的应用基于“语义分割和强化学习在自动驾驶中的应用”的文献综述,评价各主流技术的性能、优点和缺陷 - 飞桨AI Studiohttps://aistudio.baidu.com/aistudio/projectdetail/5456947
10.深度学习技术在自动驾驶中的应用AET在过去的十年里,自动驾驶汽车技术取得了越来越快的进步,主要得益于深度学习和人工智能领域的进步。作者就自动驾驶中使用的深度学习技术的现状以及基于人工智能的自驱动结构、卷积和递归神经网络、深度强化学习范式进行了详细的阐述。并对这些方法在自动驾驶场景感知、路径规划、行为仲裁和运动控制算法进行综述,同时就目前自动http://www.chinaaet.com/article/3000110152
11.论文精读与思考:深度强化学习的组合优化研究进展论文基本信息 作者:李凯文、张涛、王锐等 作者单位:国防科技大学 期刊:自动化学报 时间:2021年11月组合优化问题 链接:基于深度强化学习的组合优化研究进展 (aas.nhttps://www.jianshu.com/p/3887528006d0
12.机器学习,能为5G通信技术带来哪些新挑战?2、机器学习技术介绍 随着人工智能技术的发展,为传统方法无法解决的难题提供了新的思路,作为人工智能技术的一个主要分支,机器学习通过从以前的数据中学习并提取特征来解决复杂的问题。 机器学习主要分为三个分支:监督学习、无监督学习和强化学习。图一说明了人工智能(Artificial Intelligence,AI)、机器学习(Machine Learninhttps://www.xakpw.com/single/31167
13.AlphaGo背后的公司,11年从亏损6个亿到盈利6千万!基于学习到的奖励和从不同任务中获得的大量经验数据集,使用批量强化学习离线学习机器人策略,这种方法可以训练agent执行具有挑战性的操作任务,如堆叠刚性物体。 堆叠的新基准 最近,DeepMind推出了RGB堆叠,作为基于视觉的机器人操作任务的新基准。 在这里,机器人必须学会如何抓住不同的物体,并使它们相互平衡。这不同于以前https://www.niaogebiji.com/article-81978-1.html
14.达摩院决策智能实验室杨超:SafeRL介绍及在电网调度中的应用我们可以把强化学习和数学建模两种方法进行结合,以让每一时刻都不违反约束,我们以知识模型作为 safety layer 来进行安全约束保障。通过与求解的深度结合,可以使 policy 更好地感知到约束集区域,配合可行性检验、warm-start 机制以及冗余约束识别,从而尽可能减少 safety layer 的调用频次及求解耗时。 https://www.thepaper.cn/newsDetail_forward_18423330