一鸣 杜伟报道

计算机图形也能自动可微:MIT学神的微分太极框架开源,论文已被ICLR 2020接收

去年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。

理论计算机图形学ICLR 2020胡渊鸣太極
5
相关数据
微软亚洲研究院机构

微软亚洲研究院于1998年在北京成立,是微软公司在亚太地区设立的基础及应用研究机构,也是微软在美国本土以外规模最大的一个研究院。微软亚洲研究院从事自然用户界面、智能多媒体、大数据与知识挖掘、人工智能、云和边缘计算、计算机科学基础等领域的研究,致力于推动计算机科学前沿发展,着眼下一代革命性技术的创新,助力微软实现长远发展战略。通过与微软产品部门紧密合作,微软亚洲研究院将众多创新技术转移到了微软的核心产品中,如Office、Windows、Azure、Bing、Visual Studio、Xbox Kinect以及小冰、Cortana和Microsoft Translator等人工智能产品。

https://www.msra.cn/
Microsoft机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

计算机图形技术

图像数据处理、计算机图像(英语:Computer Graphics)是指用计算机所创造的图形。更具体的说,就是在计算机上用专门的软件和硬件用来表现和控制图像数据。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

机器之心机构

机器之心,成立于2014年,是国内最具影响力、最专业、唯一用于国际品牌的人工智能信息服务与产业服务平台。目前机器之心已经建立起涵盖媒体、数据、活动、研究及咨询、线下物理空间于一体的业务体系,为各类人工智能从业者提供综合信息服务和产业服务。

https://www.jiqizhixin.com/
推荐文章
暂无评论
暂无评论~