Panda参与

谷歌开源Neural Tangents:简单快速训练无限宽度神经网络

无限宽的神经网络可以训练了?神经正切核果然可以发挥作用了。

近日,谷歌一项研究成果在社区引发了关注,该研究宣称可通过神经正切核(Neural Tangent Kernel)使用贝叶斯推理或梯度下降分析式地训练无限宽度的神经网络。使用谷歌开源的软件库 Neural Tangents,这个过程不仅简单且快速,而且效果非常好,甚至只需 5 行代码就能一步到位地构建并训练这种无限宽度网络的集成模型!该论文已被 ICLR 2020 接收为 Spotlight 论文,相关链接见文末。


自然语言处理、会话智能体和连接组学等许多领域,深度学习都已取得了广泛的成功,机器学习领域的研究图景也已经发生了变革。不过,仍还有一些有趣而又重要的问题有待解答,比如:为什么即使在过度参数化时,深度神经网络(DNN)也能取得非常好的泛化能力?深度网络的架构、训练和性能之间有何关系?如何提取出深度学习模型中的显著特征?

我们何以在近些年里取得了如此的进步?一大关键理论见解是:增加 DNN 的宽度能使 DNN 的行为更有规律可循,也就人更容易理解它们。近来的许多研究已经表明,宽度可无限扩增的 DNN 可以收敛成另一类更为简单的名为「高斯过程(Gaussian processes)」的模型。因此,贝叶斯推理与卷积神经网络梯度下降情况等复杂现象便可约简为简单的线性代数方程。从这些无限宽度网络所得到的见解通常也适用于它们对应的有限版本。因此,无限宽度网络可用作研究深度学习的透镜,而且它们本身也可用作有用的模型。

左图:深度神经网络变得无限宽时推导输入/输出映射关系的示意图。右图:随着神经网络宽度的增长,可以看到在网络的不同随机初始化上得到的输出分布逐渐变成高斯分布

不幸的是,推导有限网络的无限宽度极限需要大量数学专业知识,而且必须针对每种不同架构专门研究。一旦推导得到了无限宽度模型,如果要得到一种高效且可扩展的实现,还进一步需要大量工程开发专业技能。总的来说,将有限宽度模型扩展成对应的无限宽度网络的这个过程可能耗费数月时间,而且这个研究本身就足以支撑起一篇研究论文。

为了解决这个问题,谷歌开源了一个用 Jax 写的开源软件库 Neural Tangents。谷歌宣称这个软件库可让无限宽度神经网络的构建与训练变得与有限宽度神经网络一样简单。究其核心,Neural Tangents 提供了一个易于使用的神经网络软件库,其可同时为神经网络构建有限和无限宽度的版本。

举个实际使用 Neural Tangents 的例子:假设要在某些数据上训练一个全连接神经网络,通常的做法是随机初始化一个神经网络,然后使用梯度下降来训练它。初始化并训练许多这样的神经网络可以得到一个集成模型。这个集成模型中各个模型成员都会给出一个预测结果,而为了得到最终结果,研究者和实践者通常的做法是求取这些结果的平均。这种做法通常能取得更好的表现。此外,集成模型中各个模型成员的预测结果还可用于估计不确定度。但训练集成模型也有缺点,即计算成本的预算很高,因此人们通常会避免这样操作。但是,如果神经网络的宽度变得无限大,就可以用一个高斯过程来描述这个集成模型了,而且这个高斯过程的均值和方差都可在训练过程中计算得到。

谷歌表示,使用 Neural Tangents,只需 5 行代码就能一步到位地构建并训练这种无限宽度网络的集成模型!下面展示了所得到的训练过程,而且谷歌还发布了一个可以尝试这一实验的交互式 Colab 笔记:

https://colab.sandbox.google.com/github/google/neural-tangents/blob/master/notebooks/neural_tangents_cookbook.ipynb


尽管事实上这种无限宽度的集成模型受一个简单的闭式表达式的控制,但它却能表现出与有限宽度集成模型的一致性。而且因为这种无限宽度的集成模型是一个高斯过程,所以它自然就能提供闭式的不确定度估计(上图中填充颜色的区域)。这些不确定度估计与在训练有限网络的许多不同副本(虚线)时所观察到的预测变化范围是紧密一致的。

上面的例子表明,无限宽度神经网络有习得并获取训练动态的能力。不仅如此,使用 Neural Tangents 构建的网络适用于任意可应用常规神经网络解决的问题。谷歌又给出了一个例子。下面比较了使用 CIFAR-10 数据集训练的三个不同的无限宽度神经网络架构。Neural Tangents 表现出色:不管是用梯度下降还是用完全贝叶斯的推理,都能以闭式形式评估无限宽残差网络等高度复杂的模型所组成的集成模型。而如果用有限宽度模型,这个任务根本无法解决。


可以看到,无限宽度网络与有限宽度网络相似,遵循着类似的层次结构:全连接网络的表现不及卷积网络,而卷积网络又赶不上宽残差网络。但是,不同于常规的训练方法,这些模型的学习动态完全可用闭式方法解决,这能让人以前所未有的方式理解这些动态,进而有助于揭开机器学习背后的奥秘,打开已困扰 AI 领域良久的深度学习黑箱。

想必现在你也想亲自探索一番了,以下链接中一定有你最感兴趣的探索形式:

  • 论文:https://arxiv.org/abs/1912.02803

  • Colab 笔记教程:https://colab.sandbox.google.com/github/google/neural-tangents/blob/master/notebooks/neural_tangents_cookbook.ipynb

  • GitHub 代码库:https://github.com/google/neural-tangents


参考链接:
http://ai.googleblog.com/2020/03/fast-and-easy-infinitely-wide-networks.html
入门谷歌神经正切核神经网络谷歌AI
相关数据
深度学习技术

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

机器学习技术

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

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

参数技术

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

收敛技术

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

神经网络技术

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

高斯过程技术

梯度下降技术

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

卷积神经网络技术

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

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

线性代数技术

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~