Uber开源「神经演化」可视化工具VINE

艾伯特 AI 科技评论按:算力的提升可能会为旧的算法注入活力。近两年来,神经演化(Neuroevolution)的方法逐渐再次受到关注,包括OpenAI、DeepMindGoogle
Brain、Sentient、Uber等全球几大研究机构近期在这方面都有一些研究,而其中Uber似乎投入了更多的精力。

图1. Google Trend中「Neuroevolution」的变化

艾伯特前段时间曾对 Uber 数日连发的 5 篇关于神经演化的文章进行了深度的解读。这些文章介绍了他们在遗传算法(genetic algorithm)、突变方法(mutation)和演化策略(evolution strategies)等神经演化思路方面的研究成果,并通过使用神经演化的方法在深度强化学习的训练中胜过 SGD 和策略梯度。这项工作宣告了神经演化方法进入了一个新的时代。

基于 Uber 的这些工作,目前有许多研究人员已经开始将目光从 SGD 或策略梯度方法转移到神经演化。这在某种程度上也促进了对相关工具的需求,特别是在神经演化过程中如何动态、可视地观察演化过程。为了解决这些问题,Uber 开发了一款用于神经演化的交互式数据可视化工具——Visual Inspector for Neuroevolution(VINE),并于昨日开源

图2. VINE可视化

为了介绍 VINE 如何进行可视化,这里我们需要简要介绍一下神经演化的基本思路。

神经演化(Neuroevolution)的概念最早于上世纪 80 年代被提出,其基本思路就是借鉴生物的演化过程:突变->选择->繁衍->突变->……。在机器学习领域,传统的方法是研究人员根据自己的经验去设计一个神经网络,然后通过实验验证它的效率;而神经演化的思路是,先初始化一群(例如 100 个)略有差异的网络,通过训练,筛选(也可以合成)出某些符合标准的个体,然后再复制出(例如)100 个副本,对这些副本网络添加一些随机扰动(类似生物进化中的突变),随后再训练和再筛选,如此往复,直至筛选出符合期望的网络为止。

从上面的说明也可以看出,无论是初始化,还是差异的选择或随机扰动的定义,或者筛选过程和标准的制定,都可以根据实验者的需求而定,因此演化的方法多种多样,例如前面提到有遗传算法(GA)、突变方法(M)和演化策略(ES)等。我们以 ES 为例,并选用 Uber 常用的 Mujoco 人形步态任务具体来说明 VINE 如何将神经演化过程可视化。

图3. 用遗传算法(左)和演化策略(右)训练模拟机器人走路

在传统的(如 OpenAI 所推广的)ES 应用中,通常采用一组被称为伪后代(pseudo-offspring cloud,POC)的神经网络,针对这一代的特定目标进行优化。具体来说就是,首先通过随机扰动单个「父」神经网络的参数来生成 POC 中中每个单独的神经网络的参数,然后根据目标对每个伪后代神经网络进行训练和评估。在人形步态任务中,每个伪后代神经网络控制着一个 Mujoco 机器人的运动,基于机器人走路的好坏给每个网络的适应度进行打分(称之为 fitness)。ES 通过基于这些适应性评分来聚合伪后代的参数(这似乎有点儿像多(双)亲交叉融合一样),来构建下一个父亲。然后循环往复。

VINE的基本使用

若想利用 VINE,就必须将演化过程中每个父亲以及所有的伪后代的行为特征记录下来。这里一个行为特征可以是一个 agent 与环境进行交互时的任何行为指标。例如在 Mujoco 中,我们可以简单地使用每个 agent 的终点位置 {x,y} 作为其行为特征,终点位置代表了这个 agent 从原点起所能移动的距离。

有了行为特征的信息,于是就可以借助可视化工具将父亲和伪后代映射到 2 维平面上。为此,VINE 调用了图形用户界面(GUI),其主要组件由两类相互关联的图组成:

  • 一个或多个伪后代图(在一个单独的 2 维平面上);
  • 一个 fitness 图

如下图所示。伪后代云图显示了每代父亲和伪后代的行为特征,而 fitness 图则显示了每一代的父亲其 fitness 得分曲线如何变化。

图4. 伪后代云图和 fitness 图示例

除了将伪后代云以及父亲的 fitness 情况可视化外,在 VINE 中用户还可以与这些图进行交互,以探索伪后代云的整体趋势以及任何一起父亲或伪后代在进化过程中的个体行为:

  • 用户可以选择可视化父亲、最佳表现者、任何一代的伪后代云,并探索不同 fitness 得分的伪后代云在二维行为特征平面上的数量以及空间分布;
  • 用户还可以在不同代之间进行比较,通过可视化的方法来观察父亲或者伪后代云在 2 维行为特征平面上如何移动,以及它们与 fitness 得分曲线之间的关系。如图 5 所示,甚至可以自动生成移动云的完整影像剪辑。
  • 点击云图上的任何一点,可以显示相应伪后代的行为特征和 fitness 得分。

图5. 可视化的世代行为演变。 每一代的颜色都会改变;在一代人中,每个伪后代的颜色强度基于该代中适应度得分的百分位数。

用户自定义

当然 VINE 工具还支持一些高级选项。举例来说,前面我们说到选择终点位置 {x,y} 作为行为特征,如果延伸一点的话,例如我们将每个 agent 从起点到终点分成 1000 个时间步长,并记录下每个时间节点的位置,那么我们就可以得出一个行为特征向量,这个向量记录了 agent 的轨迹。

当然在这种情况下,行为特征的维度已经不再是 2 维,这时候就需要降维技术将行为特征数据的维度降低到 2 维,例如 PCA 技术或者 t-SNE 技术。在 VINE 中,这个过程将自动完成。

当然 GUI 能够加载多组 2 维行为特征(通过不同的缩减技术生成),并将它们显示在同时且连接起来的云图中,如图 6 所示。这个功能为用户探索不同的行为特征和维度缩减方法提供了一种便捷的方式。

图6. 可视化多个2D BC和一个高维BC以及一个健身情节。

此外,用户还可以通过定制功能来扩展基本的可视化。在图 6 中就暂时了一个自定义的云图,在这个云图中可以显示某些类型特定领域的高维行为特征(例如 agent 的完整轨迹)以及相应的缩减 2 维行为特征。图 7 是另外一个自定义云图的例子,这个图中允许用户回放 agent 在与环境进行交互式产生的确定性/随机性行为。

图7. VINE允许用户查看任何agent产生的确定性/随机性行为的视频

当然啦,如前面所说,VINE 并不仅仅只使用于 Mujoco 任务或者 ES 算法当中。

图 8 展示的是将 VINE 应用于 Atar 2600 游戏中的一个经典游戏 Frostbite,其中的行为特征为终态模拟器 RAM 状态(游戏中能够捕获所有状态变量的长度为 128 的整数值向量),并应用 PCA 技术将行为特征映射到 2 维平面上。

图8. 可视化agent学习Frostbite

从这个图中,我们可以观察到随着演化的推进,伪后代云在逐渐向左移动并出现聚集。通过查看这些 agent 玩这个游戏的视频,我们可以推断其实每个集群都对应一个语义上有意义的不同的结束状态。

此外,VINE 还可以与其他神经演化算法(例如前面提到的遗传算法等)进行无缝的协作。事实上,这个工具独立于任何特定的神经演化算法,用户所需要做的只是稍微修改一下他的神经演化代码保存它想要了解的行为特征。

开源地址:https://github.com/uber-common/deep-neuroevolution/tree/master/visual_inspector

viaUber Engineering Blog,艾伯特(公众号:悦动智能)AI 科技评论编译

http://www.aibbt.com/a/29328.html

原文地址:https://www.cnblogs.com/aibbt-com/p/8810975.html

时间: 2024-10-04 03:35:48

Uber开源「神经演化」可视化工具VINE的相关文章

Caffe学习系列——工具篇:神经网络模型结构可视化

Caffe学习系列--工具篇:神经网络模型结构可视化 在Caffe中,目前有两种可视化prototxt格式网络结构的方法: 使用Netscope在线可视化 使用Caffe提供的draw_net.py 本文将就这两种方法加以介绍 1. Netscope:支持Caffe的神经网络结构在线可视化工具 Netscope是个支持prototxt格式描述的神经网络结构的在线可视工具,网址:  http://ethereon.github.io/netscope/quickstart.html  它可以用来可

深度神经网络可视化工具集锦

深度神经网络可视化工具集锦 雷锋网按:原文作者zhwhong,载于作者的个人博客,雷锋网(公众号:雷锋网)经授权发布.  TensorBoard:TensorFlow集成可视化工具 GitHub官方项目:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tensorboard TensorBoard 涉及到的运算,通常是在训练庞大的深度神经网络中出现的复杂而又难以理解的运算. 为了更方便 TensorFlow 程序的理

「速成应用」一键生成微信小程序平台 可视化制作开发无需代码

经历了频繁的更新迭代,小程序已经构建起了趋于完善的生态,与此同时,以「速成应用」为代表的小程序第三方开发平台也在推动着小程序市场的发展.为了更好地助力企业打造微信内电商生态闭环,实现线上线下引流,「速成应用」于近日进行了全功能的更新,通过对各类功能组件的优化,帮助企业实现商业模式的转型升级与营销突破. 「速成应用」根据商家反馈的问题,重点对小程序模块中的电商.外卖等功能进行优化升级,旨在帮助企业解决门店经营与小程序线上营销两大难题.在这次升级过程中同样也对辅助功能进行了优化.升级完成后,全线功能

55种开源数据可视化工具简介

55种开源数据可视化工具简介 雪姬 2015-04-21 11:47:56 数据可视化 评论(2)   数据时代数据可视化成为理解和表达数据的有效甚至是唯一的手段. 一共56个,盘点最实用的大数据可视化分析工具 工欲善其事必先利其器,本文对55个流行的数据可视化工具开源协议,主页,文档,案例等资源的进行简单介绍,其中包括著名的D3.js,R,Gephi,Raphaël,Processing.js,Tableau Public,Google Chart Tools,Arbor.js等,资料来源ht

【55种开源数据可视化工具简介】

大数据时代数据可视化成为理解和表达数据的有效甚至是唯一的手段. 工欲善其事必先利其器,本文对55个流行的数据可视化工具开源协议,主页,文档,案例等资源的进行简单介绍,其中包括著名的D3.js,R,Gephi,Rapha?l,Processing.js,Tableau Public,Google Chart Tools,Arbor.js等,资料来源http://selection.datavisualization.ch/ 下面安照字母顺序进行介绍(已更新至第11个,未完待续--) 1 Arbor

Linux下开源可视化工具Caravel安装(包含缺少js解决办法)

一.Caravel介绍 Caravel 是 Airbnb (知名在线房屋短租公司)开源的数据探查与可视化平台(曾用名Panoramix),该工具在可视化.易用性和交互性上非常有特色,用户可以轻松对数据进行可视化分析.最重要的是基于BS的 使用方法可以参考:http://lxw1234.com/archives/2016/06/691.htm 安装后的运行效果如下: 二.安装步骤 安装步骤分为以下几个部分: 1.安装python 由于centos自带的python是2.6.6版本的,但是carav

【工具】开源可视化工具

http://www.36dsj.com/archives/28060 流程图  graphiz   自动化布局 拓扑图  d3  sigma.js Cola.js是一个开源的JavaScript库,使用基于约束的优化技术的排列HTML5文档和图表.它和D3.js 和svg.js配合使用会更好.核心布局是基于C ++的libcola库的JavaScript代码完全重写.它有为d3.js设计的适配器,允许您将cola作为D3力布局的一个简易替换.它不像D3力的布局收敛到一个局部最优,而是通过一个简

「ASCII 流程图」工具——Graph Easy

https://juejin.im/post/5a09c43451882535c56c6bbf 「ASCII 流程图」工具——Graph Easy 原文地址:https://www.cnblogs.com/xuxm2007/p/10885813.html

PLSQL执行SQL脚本文件「适用批量」- 工具使用篇

前言 开局一条狗,装备全靠打 这篇文章应该是 2019 年最后一文章了,分享一下 PLSQL 是如何执行 SQL 脚本文件的. 关于执行 SQL 文件,下方是自己经常使用的一种方式,同样适用于批量文件. 好了.废话少说,看正文吧. 正文 File > New > Command Windows 创建一个窗口后,输入 @ 符号,然后敲回车. 然后会弹出一个文件选择窗口,选择需要执行的 SQL 文件即可运行. 不是说好了适用批量吗,你这只能选择一个啊! 咳咳,别慌嘛- 扩展批量文件执行 假设在这我