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

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

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

AI 科技评论前段时间曾对 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

via Uber Engineering Blog,AI 科技评论编译。

本文分享自微信公众号 - AI科技评论(aitechtalk)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

约翰霍普金斯大学刘晨曦:渐进式神经网络结构搜索

近年来,神经网络已经成为了计算机视觉中主要的机器学习解决方案。然而神经网络结构的设计仍然需要极强的专业知识,在一定程度上妨碍了神经网络的普及。

9620
来自专栏自然语言处理

十分钟学习自然语言处理概述

文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现。文本挖掘的准备工作由文本收集、文本分析和特征修剪三个步骤组成。目前研究和应用最多的几种文本挖掘技术...

12530
来自专栏CDA数据分析师

时间序列分析:对非平稳时间序列进行建模

编者按 曾经有位小伙伴在公众号留言提问:如何做时间序列分析?最近C君发现了一篇文章,也许可以解答这个问题,收录在此,以飨读者。本文来自于数据人网。 如果你有数据...

38180
来自专栏新智元

深度 | ImageNet 历届冠军架构最新评析:哪个深度学习网络最适合你

【新智元导读】计算机图像计算水平稳步的增长,但各大厉害的模型尚未得到合理应用。在这篇 ICLR 2017 提交论文《深度神经网络模型分析在实践中的应用》中,作者...

39160
来自专栏ATYUN订阅号

不需要大把的GPU如何赢得Kaggle比赛?fast.ai给出的十个技巧

Jeremy Howard是fast.ai的联合创始人,目前在Kaggle的植物幼苗分类竞赛中获得了第105名,但他的成绩下降得很快。因为,他自己的学生击败了他...

18740
来自专栏新智元

关于 NIPS 2016 你应该知道的 50 件事情

【新智元导读】Andreas Stuhlmüller 目前在斯坦福 Noah Goodman 教授 Computation & Cognition lab 当博...

34740
来自专栏喔家ArchiSelf

机器学习之于IOT浅见

为了更好地服务于目标客户, 嵌入式设计团队也在研究新技术, 如机器学习和深度学习。 深度学习允许这些设计师以有限的资源更快地开发和部署复杂的系统和设备。 通过这...

15620
来自专栏大数据文摘

是猫还是屏幕?OpenAI实力怼“神经网络多角度图像识别难被欺骗”说法

15220
来自专栏计算机视觉战队

学习迁移架构用于Scalable图像的识别

论文出自Google Brain,是对前一篇论文的改进,前一篇文章讲述了用RNN去搜索一个最好的网络结构,而这篇文章认为之前的搜索空间太大,效果不好,所以改成搜...

34850
来自专栏瓜大三哥

形态学滤波(二) 之Tophat滤波

形态学滤波(二) 之Tophat滤波 Tophat滤波变换实际上是原图像与“开运算”的结果图之差。算法的数学表达式如下: ? 因为开运算带来的结果是放大了裂缝或...

58770

扫码关注云+社区

领取腾讯云代金券