农企新闻网

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

发布者:高书远
导读雷锋网 AI 科技评论按:算力的提升能够会为旧的算法注入生机。近两年来,神经演化(Neuroevolution)的办法逐步再次遭到关注,包括 OpenAI、DeepMind、GoogleBrain、Sentient、Uber等全球几大研讨机构近期在这方面都有一些研讨,而其中Uber似乎投入了更多的精神。图1. Google Trend中「Neuroevolution」的变化雷锋网前段工夫曾对 Ub

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

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

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

雷锋网前段工夫曾对 Uber 数日连发的 5 篇关于神经演化的文章 停止了深度的解读。 这些文章引见了他们在遗传算法(genetic algorithm)、渐变办法(mutation)和演化战略(evolution strategies)等神经演化思绪方面的研讨效果,并经过运用神经演化的办法在深度强化学习的训练中胜过 SGD 和战略梯度。这项任务宣告了神经演化办法进入了一个新的时代。

基于 Uber 的这些任务,目前有许多研讨人员曾经开端将目光从 SGD 或战略梯度办法转移到神经演化。这在某种水平上也促进了对相关工具的需求,特别是在神经演化进程中如何静态、可视地察看演化进程。为理解决这些成绩, Uber 开发了一款用于神经演化的交互式数据可视化工具——Visual Inspector for Neuroevolution(VINE),并于昨日开源。

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

图2. VINE可视化

为了引见 VINE 如何停止可视化,这里我们需求扼要引见一下神经演化的根本思绪。

神经演化(Neuroevolution)的概念最早于上世纪 80 年代被提出,其根本思绪就是自创生物的演化进程:渐变->选择->繁衍->渐变->……。在机器学习范畴,传统的办法是研讨人员依据本人的经历去设计一个神经网络,然后经过实验验证它的效率;而神经演化的思绪是,先初始化一群(例如 100 个)略有差别的网络,经过训练,挑选(也可以分解)出某些契合规范的集体,然后再复制出(例如)100 个正本,对这些正本网络添加一些随机扰动(相似生物退化中的渐变),随后再训练和再挑选,如此往复,直至挑选出契合希冀的网络为止。

从下面的阐明也可以看出,无论是初始化,还是差别的选择或随机扰动的定义,或许挑选进程和规范的制定,都可以依据实验者的需求而定,因而演化的办法多种多样,例如后面提到有遗传算法(GA)、渐变办法(M)和演化战略(ES)等。我们以 ES 为例,并选用 Uber 常用的 Mujoco 人形步态义务详细来阐明 VINE 如何将神经演化进程可视化。

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

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

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

VINE的根本运用

若想应用 VINE,就必需将演化进程中每个父亲以及一切的伪后代的行为特征记载上去。这里一个行为特征可以是一个 agent 与环境停止交互时的任何行为目标。例如在 Mujoco 中,我们可以复杂地运用每个 agent 的起点地位 {x,y} 作为其行为特征,起点地位代表了这个 agent 从原点起所能挪动的间隔。

有了行为特征的信息,于是就可以借助可视化工具将父亲和伪后代映射到 2 维立体上。为此,VINE 调用了图形用户界面(GUI),其次要组件由两类互相关联的图组回到当下汹涌澎湃的AI浪潮,正如所有的企业都被互联网化一样,所有的互联网企业都将 AI 化。而这些互联网企业中,也包含CSDN。同时,作为全球最大的中文IT社区,CSDN还有一个历史使命——为广大的互联网公司进行AI赋能。成:

  • 一个或多个伪后代云图(在一个独自的 2 维立体上);

  • 一个 fitness 图

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

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

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

除了将伪后代云以及父亲的 fitness 状况可视化外,在 VINE 中用户还可以与这些图停止交互,以探究伪后代云的全体趋向以及任何一同父亲或伪后代在退化进程中的集体行为:

  • 用户可以选择可视化父亲、最佳表现者、任何一代的伪后代云,并探究不同 fitness 得分的伪后代云在二维行为特征立体上的数量以及空间散布;

  • 用户还可以在不同代之间停止比拟,经过可视化的办法来察看父亲或许伪后代云在 2 维行为特征立体上如何挪动,以及它们与 fitness 得分曲线之间的关系。如图 5 所示,甚至可以自动生成挪动云的完好影像剪辑。

  • 点击云图上的任何一点,可以显示相应伪后代的行为特征和 fitness 得分。

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

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

用户自定义

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

当然在这种状况下,行为特征的维度曾经不再是 2 维,这时分就需求降维技术将行为特征数据的维度降低到 2 维,例如 PCA 技术或许 t-SNE 技术。在 VINE 中,这个进程将自动完成。

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

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

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

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

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

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

当然啦,如后面所说,VINE 并不只仅只运用于 Mujoco 义务或许 ES 算法当中。

图 8 展现的是将 VINE 使用于 Atar 2600 游戏中的一个经典游戏 Frostbite,其中的行为特征为终态模仿器 RAM 形态(游戏中可以捕捉一切形态变量的长度为 128 的整数值向量),并使用 PCA 技术将行为特征映射到 2 维立体上。

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

图8. 可视化agent学习Frostbite

从这个图中,我们可以察看到随着演化的推进,伪后代云在逐步向左挪动并呈现聚集。经过检查这些 agent 玩这个游戏的视频,我们可以推断其实每个集群都对应一个语义上有意义的不同的完毕形态。

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

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

via Uber Engineering Blog,雷锋网 (大众号:雷锋网) AI 科技评论编译。

相关文章:

Uber论文5连发宣告神经演化新时代,深度强化学习训练胜过SGD和战略梯度

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