亚太娱乐平台报道计算机图形也能主动可微:MIT 学神的微分太极框架开源,论文已被 ICLR 2020 接收_亚太娱乐平台官网资讯

来自:机器之心 2020-01-09

机器之心报道

参与:一鸣、杜伟

去年 5 月,机器之心报道了 MIT 华人学神胡渊鸣等开源的计算机图形库——太极。近日,这位作者联合别的研究者推出了主动微分版本的太极——微分太极。这一框架能够基于太极实现主动微分,在物理仿照优化方面有很高的性能和机动性。这意味着太极从计算机图形学进入了机器学习的领域。

当前,一作胡渊鸣已在 GitHub 上开源了基于这一框架完成的 10 个 物理仿照器,项目登上了 GitHub 热榜。而微分太极论文也已被 ICLR2020 接收。

项目地点:https://github.com/yuanming-hu/difftaichi

论文地点:https://arxiv.org/pdf/1910.00935.pdf

胡渊鸣也在 Youtube 上传了微分太极的论文解读视频:

10 个差别的物理仿照器

微分太极框架极大了提升了可微物理仿照器的性能和生产力。例如,使用微分太极框架的可微弹性工具仿照器(ChainQueen)的速度比 TensorFlow 实现快了 188 倍;微分太极框架的运行速度与 CUDA 实现相当,但代码缩短了 4.2 倍。

大多数可微仿照器能够在 2 至 3 小时内实现。以下是其中一些仿照器的动态展示图:

可微 2D 弹性工具仿照器

左:梯度下降迭代步数 0;右:梯度下降迭代步数 80。

可微 3D 弹性工具仿照器

梯度下降迭代步数 40。

可微 3D 流体仿照器

梯度下降迭代步数 450。

可微高度场水仿照器

梯度下降迭代步数 180。

可微(抵抗性)水渲染器

这种渲染器包含三个组件:可微水仿照、可微水渲染和可微卷积神经网络(CNN)。

可微水渲染器结构图。

实验结果表明,在通过水仿照和水渲染之后,VGG-16 网络框架将带有动态水纹的松鼠照片误识别为金鱼。

可微刚性物体仿照器

时间步长 2048,梯度下降迭代步数 20。

可微弹簧质点仿照器

时间步长 682,梯度下降迭代步数 20。

可微台球仿照器

微分太极还能仿照台球等别的包含多个物体的纷乱场景。

左:梯度下降迭代步数 0;右:梯度下降迭代步数 100。

微分太极怎样实现主动微分

太极原本是用于计算机图形计算和仿照的,亚太娱乐平台要开拓为微分框架呢?这是因为使用可微仿照器进行物理操纵器优化,相比 model-free 的强化学习算法,能够提升 1 到 4 个量级的收敛速度。

微分太极是基于太极项目的,它能够使用源码转换的方式,对仿照程序生成梯度。仿照程序由一个轻量的 tape 进行记载,并以降序方式返回核的梯度,实现端到端反向流传。

基本架构

图 1:(左)微分太极能够和神经网络操纵器及物理仿照模块无缝结合,并向操纵器或初始化转台参数更新梯度。仿照进程通常有 512 到 2048 个时间步,每个时间步抵达 1000 次并行运算。(右)10 个基于微分太极构建的微分仿照器。

微分太极的主要目的是进行主动微分,即主动生成仿照器的梯度,并且应付传统的前向仿照器的代码改变坚持最小。

为了保证性能和机动性,研究者开拓了这样的主动微分系统:在核内使用源码转换的方法进行微分,并使用轻量 tape 记载函数指针和属性,用于仿照微分。全局张量是计算梯度的检讨点。

图 2:主动微分架构。(左)微分太极系统。白色局部为来自太极语言的重用架构,蓝色为微分程序的扩展局部。(右)Tape 记载了核的运行,在反向流传时以降序方式重放(replay)梯度核。

使用源码迁移进行局部主动微分

典范的太极核由多层循环和一个程序体组成。为了使后续的主动微分变得简单,研究者采纳了两种代码迁移方式,分别为平坦分支(flatten branching)和消除可变变量(eliminate mutable var),用于简化程序体:

图 3:程序体从左到右逐渐被简化(C++ 代码)。

使用 Tape 进行端到端反向流传的全局主动微分

在微分太极中,研究者构建了一个轻量级的 tape,用于核的执行,使得梯度核能够以降序的方式重放。Tape 很轻量,它不保留中间结果,而是在前向仿照中记载核的名称和输入变量。

在一个微分太极的核启动的时刻,核的函数指针和参数会被添加到 tape 中。当进行梯度计算的时刻,系统会顺着降序的 tape,将记载的参数输入梯度核中获得梯度。需要注意的是,微分太极的主动微分会依据输入的全局张量而非输入参数进行梯度计算。

举个例子,假定我们的目的是优化三个弹簧质点组成的几何图形,在仿照结束的时刻需要使它们组成的面积为 0.2。损失函数可定义如下:

程序使用「ti.Tape」记载前向核的运行。它会主动返回这些核的梯度。刚开头的时刻,三角形有着 [ 0.1, 0.1, 0.14 ] 的三边长,而优化后的长度是 [ 0.600, 0.600, 0.529 ] 。这意味着三角形需要依据胡克定律从小到大进行形变。

上图中的代码表示了三角形的形变进程。左侧的代码类似于 PyTorch 或 TF2.0 的训练进程:设定迭代次数,在前向计算后计算损失,并更新梯度。通过梯度优化的方式,计算机图形的仿照会变得更快更精确。

论文一作胡渊鸣简介

胡渊鸣是 MIT 人工智能实验室(CSAIL)的博士生,师从 Fredo Durand 和 Bill Freeman 两位教授。

他从小就对计算机体现出极大的兴趣,因其在 2012 年全国高中学科奥赛(信息学)中的优异成就而被保送至清华大学。

2017 年 7 月,胡同学作为优秀毕业生从清华大学姚班毕业。他在微软亚洲研究院跟从 Stephen Lin 博士实习时从事深度学习和计算机视觉相关工作。胡同学的本科论文主要研究的是使用强化学习和抵抗学习的主动照片后期处置(颁布在 SIGGRAPH 2018 大会上)。2018 年 11 月,胡同学在 Wojciech Matusik 教授的指导下完成其硕士论文。

本科论文链接:https://arxiv.org/abs/1709.09602

硕士论文链接:http://taichi.graphics/wp-content/uploads/2018/11/thesis_ChainQueen.pdf

胡渊鸣开拓的一系列 GitHub 项目都获得了极大的关切,其中最著名的当属 Taichi 项目,Star 量至今已达 7800。

2019 年的项目贡献值为 4651。

文为机器之心报道,转载请联系本公众号获得授权

------------------------------------------------

加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com

通宝娱乐城官网lm0或寻求报道:content@jiqizhixin.com

广告 & 商务协作:bd@jiqizhixin.com