机器之心编辑部编译

谷歌大脑:只要网络足够宽,激活函数皆可抛

深度神经网络以其强大的非线性能力为傲,借助它可以拟合图像和语音等复杂数据。但最近谷歌大脑的研究者表明只要网络足够宽,线性化的网络可以产生和原版网络相近的预测结果和准确率,即使没有激活函数也一样。这有点反直觉,你现在告诉我 Wide ResNet 那样的强大模型,在 SGD 中用不用激活函数都一样?

基于深度神经网络机器学习模型在很多任务上达到了前所未有的性能。这些模型一般被视为复杂的系统,很难进行理论分析。此外,由于主导最优化过程的通常是高维非凸损失曲面,因此要描述这些模型在训练中的梯度动态变化非常具有挑战性。

就像在物理学中常见的那样,探索此类系统的理想极限有助于解决这些困难问题。对于神经网络来说,其中一个理想极限就是无限宽度(infinite width),即全连接层中的隐藏单元数,或者卷积层中的通道数无穷大。在这种限制之下,网络初始化时的输出来自于高斯过程(GP);此外,在使用平方损失进行精确贝叶斯训练后,网络输出仍然由 GP 控制。除了理论上比较简单之外,无限宽度的极限也具有实际意义,因为研究者发现更宽的网络可以更好地泛化。

谷歌大脑的这项研究探索了宽神经网络梯度下降时的学习动态,他们发现这一动态过程的权重空间描述可以变得非常简单:随着宽度变大,神经网络在初始化时可以被其参数的一阶泰勒展开式(Taylor expansion)有效地代替。这样我们就可以得到一种线性模型,它的梯度下降过程变得易于分析。虽然线性化只在无限宽度限制下是精确的,但即使在有限宽度的情况下,研究者仍然发现原始网络的预测与线性化版本的预测非常一致。这种一致性在不同架构、优化方法和损失函数之间持续存在。

对于平方损失,精确的学习动态过程允许存在一个闭式解,它允许我们用 GP 来表征预测分布的演变。这个结果可以看成是「sample-then-optimize」后验采样向深度神经网络训练的延伸。实验模拟证实,对于具有不同随机初始化的有限宽度模型集合,实验结果可以准确地建模了其预测的变化。

论文的主要贡献:

作者表明,这项研究工作最重要的贡献是展示了参数空间中的动态更新过程等价于模型的训练动态过程(dynamics),且该模型是网络所有参数权重项与偏置项)的仿射变换。无论选择哪种损失函数,该结果都成立。尤其是在使用平方损失时,动态过程允许使用闭式解作为训练时间的函数。所以像 Wide ResNet 那样的强大非线性模型,只要足够宽,它可以直接通过线性的仿射变换直接模拟,激活函数什么的都没啥必要了~

这些理论可能看起来太简单了,不适用于实践中的神经网络。尽管如此,作者仍然通过实验研究了该理论在有限宽度中的适用性,并发现有限宽度线性网络能表征各种条件下的学习动态过程和后验函数分布,包括表征实践中常用的 Wide ResNet。

论文:Wide Neural Networks of Any Depth Evolve as Linear Models Under Gradient Descent

论文链接:https://arxiv.org/pdf/1902.06720.pdf

摘要深度学习研究的长期目标是准确描述训练和泛化过程。但是,神经网络极其复杂的损失函数表面使动态过程的理论分析扑朔迷离。谷歌大脑的这项研究展示了,宽神经网络的学习动态过程难度得到了极大简化;而对于宽度有限的神经网络,它们受到线性模型的支配,该线性模型通过初始参数附近的一阶泰勒展开式进行定义。此外,具备平方损失的宽神经网络基于梯度的训练反映了宽贝叶斯神经网络高斯过程之间的对应,这种宽神经网络生成的测试集预测来自具备特定组合核(compositional kernel)的高斯过程。尽管这些理论结果仅适用于无限宽度的神经网络,但研究者找到了一些实验证据,证明即使是宽度有限的现实网络,其原始网络的预测结果和线性版本的预测结果也符合该理论。这一理论在不同架构、优化方法和损失函数上具备稳健性。

理论结果

线性化网络

在实验部分,本论文展示了线性化网络(linearized network)能获得和原始深度非线性网络相同的输出结果和准确率等。这一部分简单介绍了什么是线性化的网络,更多理论分析可以查看原论文的第二章节。对于线性化网络的训练动态过程,首先我们需要将神经网络的输出替换为一阶泰勒展开式:

其中 ω_t ≡ θ_t − θ_0 表示模型参数从初始值到终值的变化。表达式 (6) 左边的 f_t 为两项之和:第一项为网络的初始化输出,根据泰勒公式,它在训练过程中是不改变的;第二项则会捕捉初始值在训练过程中的变化。如果我们使用线性函数,那么梯度流的动态过程可以表示为:

因为 f_0 对θ的梯度 ∇f_0 在整个训练中都为常数,这些动态过程会显得比较简单。在使用 MSE 损失函数时,常微分方程有闭式解:

因此,尽管没有训练该网络,我们同样能获得线性化神经网络沿时间的演化过程。我们只需要计算正切核函数 Θ_0 hat 和初始状态的输出 f_0,并根据方程 11、12 和 9 计算模型输出和权重的动态变化过程。重要的是,这样计算出来的值竟然和对应非线性深度网络迭代学习出来的值非常相似。

实验

本研究进行了实验,以证明宽神经网络的训练动态能够被线性模型很好地捕捉。实验包括使用全批量和小批量梯度下降的全连接、卷积和 wide ResNet 架构(梯度下降学习率非常小),以使连续时间逼近(continuous time approximation)能够发挥作用。实验考虑在 CIFAR10 数据集上进行二分类(马和飞机)、在 MNIST 和 CIFAR-10 数据集上进行十个类别的分类。在使用 MSE 损失时,研究者将二分类任务作为回归任务来看待,一个类别的回归值是+1,另一个类别的回归值是-1。

原始网络与线性网络之间的训练动态过程对比

图 5、6、7 对比了线性网络和实际网络的训练动态过程。所有示例中二者都达到了很好的一致。

图 4 展示了线性模型可以很好地描述在 CIFAR-10 数据集上使用交叉熵损失执行分类任务时的学习动态。图 6 使用交叉熵损失测试 MNIST 分类任务,且使用动量优化器进行训练。图 5 和图 7 对比了对线性网络和原始网络直接进行训练时二者的训练动态过程。

图 4:在模型上执行全批量梯度下降与线性版本上的分析动态过程(analytic dynamics)类似,不管是网络输出,还是单个权重

图 5:使用具备带有动量的最优化器进行全批量梯度下降时,卷积网络和其线性版本的表现类似。

图 6:神经网络及其线性版本在 MNIST 数据集上通过具备动量的 SGD 和交叉熵损失进行训练时,表现类似。

图 7 对比了使用 MSE 损失和具备动量的 SGD 训练的 Wide ResNet 的线性动态过程和真实动态过程。研究者稍微修改了图 7 中的残差模块结构,使每一层的通道数保持固定(该示例中通道数为 1024),其他与原始实现一致。

图 7:Wide ResNet 及其线性化版本表现类似,二者都是通过带有动量的 SGD 和 MSE 损失在 CIFAR-10 数据集上训练的。

图 8 为一系列模型绘制了平台均方根误差(plateau RMSE),它是宽度和数据集大小的函数。总体来看,误差随宽度的增加而降低。全连接网络的误差降幅约为 1/N,卷积和 WRN 架构的误差降幅更加模糊。

图 8:误差取决于深度和数据集大小。

理论激活函数深度神经网络谷歌大脑
6
相关数据
深度学习技术

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

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

机器学习技术

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

核函数技术

核函数包括线性核函数、多项式核函数、高斯核函数等,其中高斯核函数最常用,可以将数据映射到无穷维,也叫做径向基函数(Radial Basis Function 简称 RBF),是某种沿径向对称的标量函数。最常应用于SVM支持向量机中

参数技术

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

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

损失函数技术

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

神经网络技术

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

高斯过程技术

均方根误差技术

平方平均数(Quadratic mean),简称方均根(Root Mean Square,缩写为 RMS),是2次方的广义平均数的表达式,也可叫做2次幂平均数。常用于计算误差

梯度下降技术

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

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

动量技术

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

深度神经网络技术

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

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

仿射变换技术

仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。 一个对向量平移,与旋转放大缩小的仿射映射为 上式在齐次坐标上,等价于下面的式子 在分形的研究里,收缩平移仿射映射可以制造制具有自相似性的分形

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