摘要:
11月3日南栖仙策通用智能决策2022发布会,介绍了强化学习工业软件REVIVE的最新版本,更为惊艳的是,发布了首个工业控制预训练模型。可以预见到,强化学习,这一曾经在围棋上战胜人类的AI技术,将为工业场景带来巨大变革。
点击南栖仙策B站通用智能决策产品可观看完整视频。以下给大家带来文字版本。
Part 1 REVIVE 最新版本
智能决策平台REVIVE(Reinforcement learning with Virtualized Environment),能够将少量历史数据转化为强大的决策引擎。南栖仙策在经过了更多真实业务场景的不断打磨之后,今年对REVIVE SDK进行了重磅升级。“我们在多年的落地经验中,吸取了非常多的教训,我们相信这个版本,能够带来更加智能,准确,灵活,可信的智能决策结果。” 南栖仙策联合创始人秦熔均这样介绍。
本次发布会,带来了最新的REVIVE SDK与 IDE,一起来看看吧!
更加智能
新版本的REVIVE SDK 引入变量因果分析工具,将用户从稠密的数据和复杂交错的流程当中解脱出来。新版本能够自动分析数据之间的因果关系,建立决策流程图,甚至自动进行结构优化和推荐。它可以从因果的角度进行分析,什么样的输入会影响我们的决策结果,并且这个结果会影响下一时刻的哪些变量,帮助用户轻松构建模型和进行虚拟环境的训练。
更加准确
正如人类在做决策时可以很快意识到他所面临的环境,并且很容易从以往的历史经验中去做一个匹配,从过往的成功经验中获得灵感,做出决策。
在这次版本升级中,REVIVE SDK被赋予的强大功能之一就是,能够生成和自动识别多个不同的状态的虚拟环境,自动匹配不同环境的最佳元策略模型,从而对最终的策略进行调优。这种方法可以针对当前所处的实际环境,选择出最适宜准确的决策。
更加灵活
在现实中,我们能够观测获得的历史数据往往十分有限,但事实上,我们知道事情会有一些隐藏变量,也对实际结果会有影响。如果能够添加隐藏变量和处理缺失值的机制,就可以构建出更符合专家认知的模型。
新版本的REVIVE SDK,吸取了这一经验,用户可以轻松添加隐变量模块,将缺失值也纳入考量。
同时,新版本也更容易拆分出子模块进行修改和复用。比如在混动车的模型当中,我们可以把发动机、电池、电机这些组件取出来,去看其中能效关系是怎样的。
就像工具箱里多了一台手术显微镜,更灵活地改变决策结构、拆分小组件,对它们之间的策略关系进行调整。
更加可信
有时候系统会做出“奇妙举动”,我们人类可能会觉得无法理解。在策略真正执行的时候,这种状况就变得十分微妙,我们要跟随系统判断吗?是相信系统做下去会获得更好的结果,还是面临可能失败的风险?
为了解决这个问题,我们提供了决策树的可视化状态。通过决策树我们能够看到在不同状态下系统策略的偏好,以及接下来可能会采取的动作。我们可以主动和决策树进行交互和观测,尝试不同决策,在未来会获得怎样不同的结果。
在直观可见地进行了关于未来的推演之后,用户能够更好地理解模型,对系统建立更高的合作和信任感,这将帮助我们在关键时刻做出正确决策。
此外,学术界研究离线强化学习的时候,要把训练好的策略放到实际环境中测试,这是必不可少的验证步骤。
然而,要获得这样的验证机会是非常困难而宝贵的。
所以我们推出了NeoRL这个测试基准,希望使面对真实业务策略的对比验证变得更加简单。目前的测试场景包括工业、金融、商业促销和城市农业管理等环境,还包括MuJoCO等经典的控制任务。
更多信息详见NeoRL
在面向通用决策场景的REVIVE SDK之外,本场发布会上最惊艳的内容,是面向工业反馈控制任务的决策预训练模型。
Part2 通用反馈控制预训练模型
反馈控制任务是一类任务,它广泛存在于大量的工业场景中。这类任务的目标非常明确,它需要对实施过程中的每一步骤所引起的客观效果进行感知和反馈,并据此做出控制反应,调整下一步的计划决策和实施方案,在往复动态中达到控制目标。
不同的场景之下,反馈控制任务的被控系统是不一样的,通常我们需要根据不同的场景和环境去调整每一个控制参数,才能达到控制效果。
如果能够实现通用的反馈控制系统,将为工业应用带来变革。
实现这项技术的关键核心在于,对不同任务的自动识别。只有当它识别了当前的任务是什么,才能根据任务调整控制策略,以做到对不同的任务都做出最优的决策。
因此,我们推出了通用反馈控制系统识别器:GFSEncoder。它能够输出3维的编码,来识别和表达不同反馈控制系统的特征和变化。
GFSEncoder是一个参数量为40万的深度神经网络模型,是基于我们在七万个反馈控制任务中采集的六千万个交互数据并结合两个优化目标训练得到的。作为神经网络对系统的理解,这个编码的每一维并不会直接对应到系统的物理参数,但是二者依然会存在一定联系。
同时,我们还额外发布了GFSEncoder Pro,参数量相比GFSEncoder提升了50%以上,它是由更深且更大的神经网络表示的,其输入与GFSEncoder一致,但输出的任务编码维度从3维提升至8维,具有更强大的任务编码能力。
在发布会上,我们以滑块的控制为例,将GFSEncoder Pro 8维的任务特征编码投射在2维平面,展示了特征编码是如何随着物理参数的变化而变化。
最后还需要强调的是,GFSEncoder的输入仅仅是在反馈控制系统中的反馈值以及控制量序列,并不需要额外测量系统的各种参数。
GFSEncoder 的应用
(一)系统变动预警
大量的真实反馈控制系统,在长时间的自动运行中,其系统部件都会发生老化或者损坏。这种变动可能会导致很严重的后果。有了GFSEncoder,可以实时进行系统编码,并监控系统的环境是否出现变化,从而预警系统失效。
发布会上,以突然施加持续的外力为例,可以看到GFSEncoder所输出的环境编码会发生怎样的变化。
在三排状态展示中,第一幅绘制了滑块位置的观测值,目标值以及控制器输出的控制量,其中红色虚线表示在此时开始给滑块施加持续的外力。第二幅绘制的是GFSEncoder对系统的实时编码与系统最开始的编码的差异,图三是基于这个差异所作出的系统变动预警信号。
发布会视频中,我们可以看到,在系统变动约80步之后,GFSEncoder所输出的环境编码产生了变动,同时给出了环境变动的警告,80步对应的时间是1.6秒钟。也就是说,GFSEncoder在变动产生1.6秒之后就发出了警告。同样的结论在负载突然增大时也可以得到。
(二)系统标定
我们可以根据当前系统编码与标准系统编码的差异来调整系统的参数,使得我们可以在不需要经过精密测量,就可以将系统向标准系统校准。这样我们可以在发现系统变动的情况下继续借助GFSEncoder将系统调回去。
这里我们还是针对滑块位置控制任务。当滑块的外力或者质量发生偏移时,我们利用GFSEncoder对其进行标定,以此来将滑块的相应参数调回至标准系统的参数。
这里我们测试了三种场景,外力偏移标定,质量偏移标定,以及同时标定外力和质量。我们这里使用了我们之前开源的一款高效的参数优化工具包,ZOOpt来对系统的参数进行优化,其目标为最小化系统编码与标准系统编码的误差。
结果表明,经过优化后,实际参数的误差从1分别降低到0.001牛、0.03千克以及0.02的混合误差。这个结果也说明了GFSEncoder对系统编码的精确性。
(三)PID参数预测
在这个应用中,需要介绍我们将要推出的第二个模型,PIDPredictor。
PIDPredictor是由3000余个反馈控制任务对应的系统编码以及其最优PID参数训练得到的。具体来说,PIDPredictor也是一个深度神经网络模型,能够基于GFSEncoder系统编码来对其相应最优PID参数进行预测。
GFSEncoder与PIDPredictor相结合,我们可以通过系统中的历史轨迹信息得到最优PID参数。
在这里,我们通过一个平衡车控制任务来说明其作用。我们首先用了一个较为一般的PID参数作为平衡车的控制器,并用此来采集一批轨迹,这个轨迹是由每个时刻的角度以及控制器输出的控制量构成的,然后将该轨迹导入至GFSEncoder以及PIDPredictor中,并将其输出的PID参数部署至平衡车上,最终得到了一个更优的PID控制器。
通过比较左右两边的控制效果,可以看出PIDPredictor所预测的PID参数的控制效果会比待整定的PID控制器好很多。
(四)通用反馈任务控制
结合GFSEncoder对PID参数的预测,我们还可以将PID控制器用神经网络控制器替代,这就是我们即将推出的第三个应用模型:通用反馈控制器,GFSController。
GFSController是一个在7万个反馈控制任务上使用强化学习训练得到的通用控制器,它由GFSEncoder与一个神经网络控制器组合而成,该神经网络控制器输入GFSEncoder对系统的实时编码、目标值以及反馈值,最后输出控制量。
结合GFSEncoder对系统的快速编码能力,GFSController可以做到部署即运行。
在发布会上,我们看到,面对平衡车任务,我们无需进行任何针对性的调节,GFSController就能够直接将平衡车控制在稳定的状态。
在平衡车控制任务之外,我们还将GFSController部署至无人机高度控制任务中。
为了比较,我们还在该任务中设置了一个二阶的PID,可以看出,GFSController与这个调好的PID控制器表现出了相当的水平。
为了测试GFSController通用性,我们假设如果有一天人类登陆火星,这个无人机能否适应火星的重力加速度,因此我们降低了系统的重力加速度至3.7米每平方秒,可以看出,在最开始GFSController和PID控制器因为重力大大降低都出现了非常明显的超调,但是很快,GFSController完成了对火星系统环境的识别,我们可以看到其超调会明显降低,控制稳定性显著提升,然而PID控制器的超调依然很严重,以致于最后无人机撞击到地面并损坏。
除此之外,我们还降低了无人机的升力以模拟在高空飞行的场景,可以看出,GFSController同样较好地适应了这个新的环境,并完成了高度控制任务。
需要注意的是,这里的PID控制器是一个二阶级联的PID控制器。而GFSController则是一阶控制的。事实上,GFSController也能够通过级联来提升控制效果。
我们可以用两个GFSController,对它进行级联。第一个输入目标高度与当前高度,并输出目标速度,而第二个则输入目标速度与当前速度并输出控制量。我们依旧是在火星重力加速度场景下进行测试,可以看出,二阶GFSController的超调几乎消失,无人机的飞行更加稳定。这也说明了GFSController除了通用性之外,还具有强大的拓展性。
更多信息详见 GFSEncoder
我们已经将GFSEncoder的相关的模型发布到了REVIVE官网👉🔗revive.cn,欢迎大家下载体验。
在接下来的几个月中,南栖仙策将陆续发布基于强化学习的行业产品,欢迎大家持续关注。