会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 谷歌用算力爆了一篇论文,解答有关无限宽度网络的一切!

谷歌用算力爆了一篇论文,解答有关无限宽度网络的一切

时间:2025-11-04 23:21:25 来源:益强数据堂 作者:人工智能 阅读:430次

 无限宽度神经网络是谷歌关无近来一个重要的研究课题,但要通过实证实验来探索它们的用算性质,必需大规模的力爆络计算能力才行。近日,篇论谷歌大脑公布的文解一篇论文介绍了他们在有限和无限神经网络方面的系统性探索成果。该研究通过大规模对比实验得到了 12 条重要的答有度网实验结论并在此过程中找到了一些新的改进方法。该文作者之一 Jascha Sohl-Dickstein 表示:「这篇论文包含你想知道的限宽但没有足够的计算能力探求的有关无限宽度网络的一切!」

近日,谷歌关无谷歌大脑的用算研究者通过大规模实证研究探讨了宽神经网络与核(kernel)方法之间的对应关系。在此过程中,力爆络研究者解决了一系列与无限宽度神经网络研究相关的篇论问题,并总结得到了 12 项实验结果。文解

此外,答有度网实验还额外为权重衰减找到了一种改进版逐层扩展方法,限宽可以提升有限宽度网络的谷歌关无泛化能力。

最后,他们还为使用 NNGP(神经网络高斯过程)和 NT(神经正切)核的预测任务找到了一种改进版的IT技术网最佳实践,其中包括一种全新的集成(ensembling)技术。这些最佳实践技术让实验中每种架构对应的核在 CIFAR-10 分类任务上均取得了当前最佳的成绩。

论文链接:https://arxiv.org/pdf/2007.15801v1.pdf

当使用贝叶斯方法和梯度下降方法训练的神经网络的中间层是无限宽时,这些网络可以收敛至高斯过程或紧密相关的核方法。这些无限宽度网络的预测过程可通过贝叶斯网络的神经网络高斯过程(NNGP)核函数来描述,也可通过梯度下降方法所训练网络的神经正切核(NTK)和权重空间线性化来描述。

这种对应关系是近来在理解神经网络方面获得突破的关键,同时还使核方法、贝叶斯深度学习、主动学习和半监督学习取得了切实的进步。在为大规模神经网络提供确切理论描述时,NNGP、NTK 和相关的宽度限制都是独特的。因此可以相信它们仍将继续为深度学习理论带来变革。

无限网络是近来一个活跃的云南idc服务商研究领域,但其基础性的实证问题仍待解答。谷歌大脑的这项研究对有限和无限宽度神经网络进行了广泛深入的实证研究。在此过程中,研究者通过实证数据定量地解答了影响有限网络和核方法性能的变化因素,揭示了出人意料的新行为,并开发了可提升有限与无限宽度网络性能的最佳实践。

实验设计

为了系统性地对无限和有限神经网络进行实证研究,研究者首先确立了每种架构的 base,方便直接对比无限宽度核方法、线性化权重空间网络和基于非线性梯度下降的训练方法。对于有限宽度的情况,base 架构使用了恒定小学习率且损失为 MSE(均方误差)的 mini-batch 梯度下降。在核学习设置中,研究者为整个数据集计算了 NNGP 和 NTK。

完成这种一对一的比较之后,研究者在 base 模型之上进行了大量不同种类的修改。某些修改会大致保留其对应关系(比如数据增强),而另一些则会打破这种对应关系,并且假设对应关系的打破会影响到性能结果(比如使用较大的云服务器提供商学习率)。

此外,研究者还围绕 base 模型的初始化对其进行线性化尝试,在这种情况下,其训练动态可使用常量核来精准地描述。由于有限宽度效应,这不同于前文描述的核设置。

该研究使用 MSE 损失的原因是能更容易地与核方法进行比较,交叉熵损失在性能方面比 MSE 损失略好,但这还留待未来研究。

该研究涉及的架构要么是基于全连接层(FCN)构建的,要么就是用卷积层(CNN)构建的。所有案例都使用了 ReLU 非线性函数。除非另有说明,该研究使用的模型都是 3 层的 FCN 和 8 层的 CNN。对于卷积网络,在最后的读出层(readout layer)之前必须压缩图像形状数据的空间维度。为此,要么是将图像展平为一维向量(VEC),要么是对空间维度应用全局平均池化(GAP)。

最后,研究者比较了两种参数化网络权重和偏置的方法:标准参数化(STD)和 NTK 参数化(NTK)。其中 STD 用于有限宽度网络的研究,NTK 则在目前大多数无限宽度网络研究中得到应用。

除非另有说明,该研究中所有核方法的实验都是基于对角核正则化(diagonal kernel regularization)独立优化完成的。有限宽度网络则全都使用了与 base 模型相对应的小学习率。

这篇论文中的实验基本都是计算密集型的。举个例子,要为 CNN-GAP 架构在 CIFAR-10 上计算 NTK 或 NNGP,就必须用 6×10^7 乘 6×10^7 的核矩阵对各项进行评估。通常来说,这需要双精度 GPU 时间约 1200 小时,因此研究者使用了基于 beam 的大规模分布式计算基础设施。

所有实验都使用了基于 JAX 的 Neural Tangents 库:https://github.com/google/neural-tangents。

为了尽可能地做到系统性,同时又考虑到如此巨大的计算需求,于是研究者仅使用了一个数据集 CIFAR-10,即在该数据集上评估对每种架构的每种修改措施。同时,为了保证结果也适用于不同的数据集,研究者还在 CIFAR-100 和 Fashion-MNIST 上评估了部分关键结果。

从实验中得到的 12 条结论

以下为基于实验结果总结的 12 个结论(详细分析请参阅原论文):

1. NNGP/NTK 的表现可胜过有限网络

在无限网络研究中,一个常见假设是它们在大数据环境中的表现赶不上对应的有限网络。通过比较核方法与有限宽度架构(使用小学习率,无正则化)的 base 模型,并逐一验证可打破(大学习率、L2 正则化)或改进(集成)无限宽度与核方法对应性的训练实践的效果,研究者验证了这一假设。结果见下图 1:

图 1:有限和无限网络及其变体在 CIFAR-10 上的测试准确率。从给定架构类别的有限宽度 base 网络开始,标准和 NTK 参数化的模型表现随着修改而发生变化:+C 指居中(Centering)、+LR 指大学习率、+U 指通过早停实现欠拟合、+ZCA 指使用 ZCA 正则化进行输入预处理、+Ens 指多个初始化集成,另外还有一些组合方案。Lin 指线性化 base 网络的性能。

从中可以观察到,对于 base 有限网络,无限 FCN 和 CNN-VEC 的表现要优于它们各自对应的有限网络。另一方面,无限 CNN-GAP 网络的表现又比其对应的有限版本差。研究者指出这其实与架构有关。举例来说,即使有限宽度 FCN 网络组合了高学习率、L2 和欠拟合等多种不同技巧,无限 FCN 网络的性能还是更优。只有再加上集成之后,有限网络的性能才能达到相近程度。

另一个有趣的观察是,ZCA 正则化预处理能显著提升 CNN-GAP 核的表现

2. NNGP 通常优于 NTK

从下图 2 中可以看出,在 CIFAR-10、CIFAR-100 和 Fashion-MNIST 数据集上 NNGP 的性能持续优于 NTK。NNGP 核不仅能得到更强的模型,而且所需的内存和计算量也仅有对应的 NTK 的一半左右,而且某些性能最高的核根本就没有对应的 NTK 版本。

图 2:当对角正则化经过精心调整时,NNGP 在图像分类任务上通常优于 NTK。

3. 居中和集成有限网络都会得到类 kernel 的表现

图 3:居中可以加速训练和提升性能。

图 4:集成 base 网络可让它们达到与核方法相媲美的表现,并且在非线性 CNN 上还优于核方法。

4. 大学习率和 L2 正则化会让有限网络和核之间出现差异

从上图 1 中可以观察到,大学习率(LR)的效果容易受到架构和参数化的影响。

L2 正则化则能稳定地提升所有架构和参数化的性能(+1-2%)。即使使用经过精心调节的 L2 正则化,有限宽度 CNN-VEC 和 FCN 依然比不上 NNGP/NTK。L2 结合早停能为有限宽度 CNN-VEC 带来 10-15% 的显著性能提升,使其超过 NNGP/NTK。

5. 使用标准参数化能为网络提升 L2 正则化

图 5:受 NTK 启发的逐层扩展能让 L2 正则化在标准参数化网络中更有帮助。

研究者发现,相比于使用标准参数化,使用 NTK 参数化时 L2 正则化能为有限宽度网络带来显著的性能提升。使用两种参数化的网络的权重之间存在双射映射。受 NTK 参数化中 L2 正则化项性能提升的启发,研究者使用这一映射构建了一个可用于标准参数化网络的正则化项,其得到的惩罚项与原版 L2 正则化在对应的 NTK 参数化网络上得到的一样。

6. 在超过两次下降的宽度中,性能表现可能是非单调的

图 6:有限宽度网络在宽度增大时通常会有更好的表现,但 CNN-VEC 表现出了出人意料的非单调行为。L2:在训练阶段允许非零权重衰减,LR:允许大学习率,虚线表示允许欠拟合(U)。

7. 核对角正则化的行为类似于早停

图 7:对角核正则化的行为类似于早停。实线对应具备不同对角正则化 ε 的 NTK 推断;虚线对应梯度下降到时间 τ = ηt 后的预测结果,线条颜色表示不同的训练集大小 m。在时间 t 执行早停紧密对应于使用系数 ε = Km/ηt 的正则化,其中 K=10 表示输出类别的数量。

8. 浮点数精度决定了核方法失败的关键数据集大小

图 8:无限网络核的尾部特征值表现出了幂律衰减趋势。

9. 由于条件不好,线性化 CNN-GAP 模型表现很差

研究者观察到线性化 CNN-GAP 在训练集上的收敛速度非常慢,导致其验证表现也很差(见上图 3)。

这一结果的原因是池化网络的条件很差。Xiao 等人的研究 [33] 表明 CNN-GAP 网络初始化的条件比 FCN 或 CNN-VEC 网络差了像素数倍(对 CIFAR-10 来说是 1024)。

表 1:对应架构类型的核的 CIFAR-10 测试准确率。

10. 正则化 ZCA 白化(whitening)可提升准确率

图 9:正则化 ZCA 白化可提升有限和无限宽度网络的图像分类性能。所有的图都将性能表现为 ZCA 正则化强度的函数。a)在 CIFAR-10、Fashion-MNIST、CIFAR-100 上核方法输入的 ZCA 白化;b)有限宽度网络输入的 ZCA 白化。

11. 同变性(equivariance)仅对远离核区域的窄网络有益

图 10:同变性仅在核区域之外的 CNN 模型中得到利用。

如果 CNN 模型能有效地利用同变性,则预计它能比 FCN 更稳健地处理裁剪和平移。出人意料的是,宽 CNN-VEC 的性能会随输入扰动的幅度而下降,而且下降速度与 FCN 一样快,这说明同变性并未得到利用。相反,使用权重衰减的窄模型(CNN-VEC+L2+narrow)的性能下降速度要慢得多。正如预期,平移不变型 CNN-GAP 依然是最稳健的。

12. 集成核预测器可使用 NNGP/NTK 进行实用的数据增强

图 11:集成核预测器(ensembling kernel predictors)可使基于大规模增强数据集的预测在计算上可行。

可以观察到,DA 集成可提升准确率,且相比于 NTK,它对 NNGP 的效果要好得多。

这里研究者提出了一种直接让集成核预测器实现更广泛的数据增强的方法。该策略涉及到构建一组经过增强的数据批,为其中每一批执行核推断,然后执行所得结果的集成。这相当于用模块对角近似替代核,其中每个模块都对应一个数据批,所有增强的数据批的并集即为完整的增强数据集。该方法在该研究所有无线宽度架构的对应核方法上都取得了当前最佳结果。

(责任编辑:人工智能)

最新内容
推荐内容
  • 腾龙17-50佳能扣镜头评测(画质出众功能全面佳能佳品推荐)
  • 通过查看网页源代码可以发现,网页设计师们最常用的是 Windows 平台中的“微软雅黑”、“宋体”等字体。与我在经验“Ubuntu 里为 LibreOffice 设置替换显示字体”中提到的相似的原因,在 Ubuntu 中浏览网页时,由于字体对不上,网页内容一般也都是显示为黑体字,比较单调。除了从 Windows 平台复制字体到 Ubuntu 平台这一方法之外,其实我们可以通过设定字体替换,让网页上常用的“黑体”、“宋体”由 Ubuntu 调用相应的字体显示,让网页外观在两个平台上有近似的显示效果。在 Ubuntu 平台上打开网页,满眼都是黑体字。难道网页设计师就是这样设计的吗?在网页空白处右键,在弹出菜单中点击“查看源代码”(或类似的选项),在其中找到网页 css 链接并打开,可以看到,网页设计师并不是只用“黑体”一种字体。如图,该网页的设计师使用了“黑体”、“宋体”两种字体显示中文。为了让 Ubuntu 平台上浏览网页时,能够看到与网页设计师原始设计接近的效果,我们需要替换字体。软件名称:Font Creator Program v4.1 绿色汉化破解版(字体制作编辑修改工具)软件大小:3MB更新时间:2013-05-131、首先,要安装一款叫做“Font Manager“的软件。Font Manager 安装完成后,点击启动它。待启动完成后,在窗口左侧下方,点击字体设置按钮(上面带有a、b两个字母的按钮)。2、在弹出的菜单中,点选“Alias Editor“。3、弹出 Alias Editor 窗口,点击右侧的 Add Alias (添加字体别名)按钮。4、左侧输入窗口中会出现一个默认字符为“Family”的条目,双击它,并改为“宋体”,然后回车;再点击窗口右侧的 “Add Substitute”(添加字体替换)按钮。5、在上一步骤输入“宋体”的条目下方,会出现默认字符为“Subtitute”的条目,同样双击,改为“AR PL UMing CN”(输入“AR”两个字母后,下方会弹出字体列表,可以从中选择)、回车。6、用同样的方法,输入以下字体及其替换:SimSun——AR PL UMing CN;黑体——Droid Sans Fallback;等等,如图。7、最后点击窗口右下角的“Write configure”(写入配置文件)按钮,窗口关闭,回到 Font Manager 主窗口,在弹出的 Font Manager needs to reload 对话框中,点击“Reload”。8、注销 Ubuntu 登录(注意保存正在编辑的文档)、重新登录。9、再打开第1步骤中打开过的网页,会看到网页字体区分内容,由不同的字体显示不同的内容了。标题由黑体负责显示,内容由宋体负责显示,错落有致,不会视觉疲劳。相关推荐: Ubuntu系统中LibreOffice怎么替换显示字体? ubuntu系统中删除/卸载自行安装的字体的方法
  • Win10电脑错误1067的解决方法(解析Win10电脑出现错误1067的原因和解决方案)
  • 电脑分区调整检测错误全解析(深入剖析电脑分区调整中的常见错误及解决方案)
  • 小白也能轻松学会电脑装机(详解电脑装机教程,让你快速掌握装机技巧)
  • 假如你想要使用多个Linux发行版,你没有那么多的选择。你要么安装到你的物理机或虚拟机中,要么以live模式从ISO文件启动。第二个选择,对硬盘空间需求较小,只是有点麻烦,因为你需要将ISO文件写入到U盘或CD/DVD中来启动。不过,这里还有另外一个可选的折中方案:把ISO镜像放在硬盘中,然后以live模式来启动。该方案比完全安装更省空间,而且功能也完备,这对于缓慢的虚拟机而言是个不错的替代方案。下面我将介绍怎样使用流行的Grub启动加载器来实现该方案。很明显,你将需要使用到Grub,这是几乎所有现代Linux发行版都使用的。你也需要你所想用的Linux版本的ISO文件,将它下载到本地磁盘。最后,你需要知道启动分区在哪里,并怎样在Grub中描述。对于此,请使用以下命令:复制代码代码如下:# fdisk -l 带有‘*’的就是启动分区。对于我,就是/dev/sda1,用Grub语言描述就是(hd0,1)。作为参考,sda2就是(hd0,2),sdb1就是(hd1,1),以此类推。(你明白了吧。)我们需要编辑什么?首先,打开/etc/default/grub并检查以下行:复制代码代码如下:#GRUB_HIDDEN_TIMEOUT=0需要在此行前添加‘#’进行注释。保存,然后打开/etc/grub.d/40_custom。在该文件中,你将添加启动到ISO的参数。结构如下:复制代码代码如下: menuentry [Entrys title in the grub screen] {     set isofile=[path to ISO file]     loopback loop [boot partition in Grub language]$isofile     [some specific] arguments    }例如,假如你想要从ISO文件启动Ubuntu,那么你就是想要添加如下行到40_custom文件:复制代码代码如下:menuentry Ubuntu 14.04 (LTS) Live Desktop amd64 {     set isofile=/boot/ubuntu-14.04-desktop-amd64.iso     loopback loop (hd0,1)$isofile     linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash     initrd (loop)/casper/initrd.lz     } 假如你想要启动Gparted:复制代码代码如下:menuentry GParted Live amd64 {     set isofile=/boot/gparted-live-0.18.0-2-amd64.iso     loopback loop (hd0,1)$isofile     loopback loop $isofile     linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=${isofile}     initrd (loop)/live/initrd.img     }或者甚至是Fedora:复制代码代码如下:menuentry Fedora 20 Live Desktop x86_64 {     set isofile=/boot/Fedora-Live-Desktop-x86_64-20-1.iso     loopback loop (hd0,1)$isofile     loopback loop $isofile     linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-Live-Desktop-x86_64-20-1 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 iso-scan/filename=${isofile}     initrd (loop)/isolinux/initrd0.img     }注意,参数可根据发行版进行修改。幸运的是,有许多地方你可以查阅到。我喜欢这个发行版,但是还有很多其它的发行版你可以启动。同时,请注意你放置ISO文件的地方。假如你的家目录被加密或者无法被访问到,你可能更喜欢将这些文件放到像例子中的启动分区。但是,请首先确保启动分区有足够的空间。最后,不要忘了保存40_custom文件并使用以下命令来更新grub:复制代码代码如下: # sudo update-grub 以便在下次启动时看到修改。接下来做什么?想要更多东西?好吧,那就修改下参数来玩玩。你可以启动一个ISO文件,并让它持续做一些事情。例如,假如你是个彻头彻尾的妄想症患者,想要有个可以快速清除硬盘的选项,那么可以使用DBAN来进行一些设置。现在,真的要当心啊,因为此设置会清除你的硬盘,而且在启动时也没有恢复选项:复制代码代码如下: menuentry Dariks Boot and Nuke {     set isofile=/boot/dban.iso     loopback loop (hd0,1)$isofile     linux (loop)/dban.bzi nuke=dwipe silent     }另外一个选择复制代码代码如下:menuentry Dariks Boot and Nuke {    set isofile=/boot/dban.iso    loopback loop (hd0,1)$isofile    linux (loop)/dban.bzi    }可以显示DBAN选项,让你选择清除驱动器。当心,因为它仍然十分危险。小结一下,对于ISO文件和Grub有很多事情可做:从快速live会话到一键毁灭,都可以满足你。之后,你也可以试试启动一些针对隐私方面的发行版,如Tails。
热点内容