Hinton向量学院推出神经ODE:超越ResNet 4大性能优势

简介: Hinton创建的向量学院的研究者提出了一类新的神经网络模型,神经常微分方程(Neural ODE),将神经网络与常微分方程结合在一起,用ODE来做预测。不是逐层更新隐藏层,而是用神经网络来指定它们的衍生深度,用ODE求解器自适应地计算输出。

我们知道神经网络是一种大的分层模型,能够从复杂的数据中学习模式。这也是为什么神经网络在处理图像、声音、视频和序列行动时有很多成功的应用。但我们常常忘记一点,那就是神经网络也是一种通用函数逼近器,因此,神经网络可以作为数值分析工具,用来解决更多的“经典”数学问题,比如常微分方程(Ordinary Differential Equation,ODE)。

2015年横空出世的残差网络ResNet,已经成为深度学习业界的一个经典模型,ResNet对每层的输入做一个reference,学习形成残差函数,这种残差函数更容易优化,使网络层数大大加深。不少研究者都将 ResNet 作为近似ODE求解器,展开了对 ResNet的可逆性(reversibility)和近似计算的研究。

在一篇最新的论文里,来自多伦多大学和“深度学习教父”Geoffrey Hinton创建的向量学院的几位研究者,将深度学习与ODE求解器相结合,提出了神经ODE”(Neural ODE),用更通用的方式展示了这些属性。 

他们将神经ODE作为模型组件,为时间序列建模、监督学习和密度估计开发了新的模型。这些新的模型能够根据每个输入来调整其评估策略,并且能显式地控制计算速度和精度之间的权衡。

将深度学习和常微分方程结合在一起,提供四大优势

残差网络、递归神经网络解码器和标准化流(normalizing flows)之类模型,通过将一系列变化组合成一个隐藏状态(hidden state)来构建复杂的变换:


其中。这些迭代更新可以看作是连续变换的欧拉离散化。

当我们向网络中添加更多的层,并采取更少的步骤时会发生什么呢?在极限情况下,我们使用神经网络指定的常微分方程(ODE)来参数化隐藏单元的连续动态:


从输入层开始,我们可以将输出层定义为在某个时间时这个ODE的初始值问题的解。这个值可以通过黑盒微分方程求解器来计算,该求解器在必要的时候评估隐藏单元动态,以确定所需精度的解。图1对比了这两种方法。


图1:左:残差网络定义一个离散的有限变换序列。右:ODE网络定义了一个向量场,它不断地变换状态。圆圈代表评估位置。

使用ODE求解器定义和评估模型有以下几个好处:

内存效率 在论文第2章,我们解释了如何计算任何ODE求解器的所有输入的标量值损失的梯度,而不通过求解器的操作进行反向传播。不存储任何中间量的前向通道允许我们以几乎不变的内存成本来训练模型,这是训练深度模型的一个主要瓶颈。
自适应计算 。欧拉方法(Euler’s method)可能是求解ODE最简单的方法。现代的ODE求解器提供了有关近似误差增长的保证,检测误差的大小并实时调整其评估策略,以达到所要求的精度水平。这使得评估模型的成本随着问题复杂度而增加。训练结束后,可以降低实时应用或低功耗应用的精度。
参数效率 。当隐藏单元动态(hidden unit dynamics)被参数化为时间的连续函数时,附近“layers”的参数自动连接在一起。在第3节中,我们表明这减少了监督学习任务所需的参数数量。
可扩展的和可逆的normalizing flows 。连续变换的一个意想不到的好处是变量公式的变化更容易计算了。在第4节中,我们推导出这个结果,并用它构造了一类新的可逆密度模型,该模型避免了normalizing flows的单个单元瓶颈,并且可以通过最大似然法直接进行训练。

连续时间序列模型。与需要离散观测和发射间隔的递归神经网络不同,连续定义的动态可以自然地并入任意时间到达的数据。在第5节中,我们构建并演示了这样一个模型。

ODE求解器提供了一个通用的反向传播算法

论文作者、多伦多大学助理教授David Duvenaud表示,他们通过ODE求解器,提供了一个通用的backprop,但他们的方法是从可逆性上入手,而不是在ODE求解器的运算里进行反向传播(因为这样做对内存消耗很大)。这个方法已经添加到 autograd。 

另一位作者、多伦多大学的博士生Tian Qi Chen也表示,他们这项工作创新的地方就在于提出并且开源了一种新方法,在自动微分的框架下,将ODE和深度学习结合在一起。

此外,这项研究还得到了很多意外的收获。例如,构建了连续标准化流(continuous normalizing flows),可逆性强,可以使用宽度,就像 Real NVP一样,但不需要对数据维度分区或排序。


标准化流与连续标准化流量的比较。标准化流的模型容量由网络的深度(K)决定,而连续标准化流的模型容量可以通过增加宽度(M)来增加,使它们更容易训练。来源:研究论文

还有时间连续RNN(continuous-time RNNs),能够处理不规则的观察时间,同时用状态依赖的泊松过程近似建模。下图展示了普通的RNN和神经ODE对比:


Tian Qi Chen说,他尤其喜欢变量的即时改变,这打开了一种新的方法,用连续标准流进行生成建模。

目前,作者正在讲ODE求解器拓展到GPU上,做更大规模的扩展。

论文:神经常微分方程



原文发布时间为:2018-06-21

本文作者:闻菲,肖琴

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”。

原文链接:Hinton向量学院推出神经ODE:超越ResNet 4大性能优势

相关文章
|
Web App开发 测试技术
使用Selenium模拟鼠标滚动操作的技巧
本文介绍了使用Selenium进行Web自动化测试时如何模拟鼠标滚动操作。模拟滚动对于处理动态加载的内容至关重要。通过`ActionChains`类,可以实现向下滑动1000像素的操作。示例代码展示了如何结合滚动来截取长页面的完整图片。总结来说,Selenium的`ActionChains`使得模拟用户行为,如滚动,变得简单,便于执行自动化任务。
|
安全 Go 数据安全/隐私保护
Flutter开发笔记:Flutter路由技术
Flutter开发笔记:Flutter路由技术
1481 0
|
存储 供应链 分布式数据库
深入理解区块链技术:原理、应用与挑战
本文旨在探讨区块链技术的基本原理、主要应用及其面临的挑战。通过分析区块链的分布式账本技术、加密算法和共识机制,我们揭示了其如何在无需中心化权威的情况下确保数据的不可篡改性和透明性。此外,文章还讨论了区块链在金融、供应链管理、智能合约等领域的应用案例,并指出了当前区块链技术面临的可扩展性、隐私保护和法律监管等挑战。通过对这些内容的深入分析,我们希望为读者提供一个全面而深入的区块链技术概览。
1657 16
|
11月前
|
机器学习/深度学习 数据采集 算法
机器学习在生物信息学中的创新应用:解锁生物数据的奥秘
机器学习在生物信息学中的创新应用:解锁生物数据的奥秘
881 36
|
存储 Java 数据库
Spring Boot 优雅实现多租户架构
本文详细介绍如何使用Spring Boot和Spring Cloud实现多租户架构。多租户架构允许多个租户共用一个应用,各自拥有独立资源和数据。其优势包括满足个性化需求、降低成本、复用代码以及增强可扩展性。文中探讨了架构选型、数据库设计、应用部署及租户管理等内容,并提供了具体实现步骤和技术细节。适用于SaaS应用和多租户云服务等场景。
|
安全 网络安全 网络虚拟化
详细探讨 Cisco ASA VPN 的故障排除和调试方法
详细探讨 Cisco ASA VPN 的故障排除和调试方法
688 0
详细探讨 Cisco ASA VPN 的故障排除和调试方法
|
缓存 网络协议 网络性能优化
Windows 2012 上网慢如何解决
Windows 2012 上网慢如何解决
289 0
|
机器学习/深度学习 算法框架/工具
详细探讨跨域学习与迁移学习在图像识别中的应用
详细探讨跨域学习与迁移学习在图像识别中的应用
|
机器学习/深度学习 自然语言处理 自动驾驶
探索深度学习中的弱监督学习
弱监督学习(Weakly Supervised Learning)是一种介于监督学习和无监督学习之间的机器学习方法。它在有限、部分或不完全标注的数据上进行训练,旨在利用这些不完美的标签信息来学习有效的模型。弱监督学习在深度学习中具有重要的应用,因为获得大规模的完全标注数据往往非常困难和昂贵。以下是对深度学习中弱监督学习的详细介绍,包括其基本概念、主要类型、方法、应用场景、优势和挑战。
676 1
|
Web App开发 Windows
VitePress 构建的博客如何部署到 Netlify 平台?
VitePress 构建的博客如何部署到 Netlify 平台? 前言 之前写了篇文章【使用 Vitepress 构建博客并部署到 github 平台】,有个老哥说 github page 访问太慢了,希望放到 Netlify 平台上面。 咱也没部署过,就试了一下,发现比在 github 上部署简单多了... 一、注册账号 注册 netlify 账号 【Netlify】 地址:app.netlify.com/ 可以使用 github 账号注册,这样可以直接拉取 github 的内容进行部署,更简单
414 0