只要网络足够宽,深度学习的动力学就可以大大简化,更容易理解。最近的许多研究结果表明,无限宽度的DNN会收敛到一类更简单的模型,称为高斯过程。因此,可以将复杂现象归结为简单的线性代数方程,以了解人工智能的工作原理。谷歌重磅开源新技术:5行代码打造无限宽神经网络模型》>所谓无限宽(infinitewidth)指的是全连接层隐藏单元的个数,或者说全连接层的通道数卷积层是无限的然而,问题来了:推导有限网络的无限宽度限制需要大量的数学知识,而且必须针对不同的研究架构分别计算。对工程技能的要求也很高。谷歌最新开放sourceNeuralTangents,旨在解决这个问题,让研究人员可以轻松构建和训练无限宽度的神经网络。甚至只需要5行代码就可以创建无限宽度的神经网络模型。这项研究成果获得了ICLR2020。点击Colab链接在文末,可以在线玩,开箱即用,5行代码创建无限宽神经网络模型NeuralTangents是一种高级神经网络API,可用于指定复杂的、分层的神经网络,在CPU/GPU/TPU上开箱即用。该库使用JAX编写,既可以构建有限宽度神经网络,也可以轻松创建和训练无限宽度神经网络。有什么用?例如,您需要训练一个完全连接的神经网络。通常,神经网络是随机初始化的,然后使用梯度下降进行训练。研究人员通过对一组神经网络的不同成员的预测进行平均来改进模型的性能。此外,每个成员预测的方差可用于估计不确定性。这样,需要大量的计算预算。但是当神经网络变得无限宽时,网络集成可以用高斯过程来描述,并且可以在整个训练过程中计算其均值和方差。并且使用NeuralTangents,只需要5行代码就可以完成无限宽网络集的构建和训练。从neural_tangentsimportpredict,staxinit_fn,apply_fn,kernel_fn=stax.serial(stax.Dense(2048,W_std=1.5,b_std=0.05),stax.Erf(),stax.Dense(2048,W_std=1.5,b_std=0.05),stax。Erf(),stax.Dense(1,W_std=1.5,b_std=0.05))y_mean,y_var=predict.gp_inference(kernel_fn,x_train,y_train,x_test,'ntk',diag_reg=1e-4,compute_cov=True)谷歌重磅开源新技术:5行代码打造无限宽神经网络模型》>上图中,左图为训练过程中输出(f)随输入数据(x)的变化;右图显示了训练过程中的不确定性Training,testingloss。将有限神经网络的集成训练与相同架构的无限宽神经网络的集成进行比较,研究人员发现使用无限宽模型的准确推理之间存在显着差异和使用梯度下降训练集成模型的结果。一致性好。这说明这是无限宽的神经网络捕捉训练动态的能力。不仅如此,常规神经网络可以解决的问题,NeuralTangents构建的网络同样没问题。研究人员在CIFAR-10数据集中的图像识别任务上比较了三种不同架构的无限宽度神经网络。谷歌重磅开源新技术:5行代码打造无限宽度神经网络模型》>如你所见,无限宽度网络模拟的是有限宽度神经网络,遵循相似的性能层次结构,其全连接的性能网络比卷积网络差,卷积网络的性能比宽残差网络差。但是,与常规训练不同的是,这些模型的学习动态在封闭形式下是可管理的,即它们的行为可以以前所未有的视角进行观察,这项研究也为深入理解机器学习机制提供了一种新的思维方式,谷歌表示这将有助于“打开机器学习的黑匣子”。传送门论文地址:https://arxiv.org/abs/1912.02803谷歌博客:https://ai.googleblog.com/2020/03/fast-and-easy-infinitely-wide-networks.htmlGitHub地址:https:///github.com/google/neural-tangentsColab地址:https://colab.research.google.com/github/google/neural-tangents/blob/master/notebooks/neural_tangents_cookbook.ipynb
