您当前的位置:硅谷科技网资讯正文

计算机图形主动可微MIT学神微分太极结构开源论文被ICLR接纳

时间:2020-01-09 20:16:05  阅读:2465+ 作者:责任编辑NO。卢泓钢0469

机器之心报导

参加:一鸣、杜伟

上一年5月,机器之心报导了 MIT 华人学神胡渊鸣等开源的核算机图形库——太极。近来,这位作者联合其他研讨者推出了主动微分版别的太极——微分太极。这一结构能够依据太极完结主动微分,在物理模仿优化方面有很高的功能和灵活性。这在某种程度上预示着太极从核算机图形学进入了机器学习的范畴。

现在,一作胡渊鸣已在 GitHub 上开源了依据这一结构完结的 10个 物理模仿器,项目登上了 GitHub 热榜。而微分太极论文也已被 ICLR2020 接纳。

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

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

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。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!