分享

深度学习的选择性概述

 非著名问天 2022-03-27

Fan, J., Ma, C., and Zhong, Y. (2021). A selective overview of deep leaning. Statistical Science, 36(2), 264-290.

背景介绍

现代机器学习和统计学解决的是从数据中学习的问题,即给定训练集,人们从某个函数类中寻找一个对测试数据有良好预测性能的函数。深度学习以一种简单的形式提出了一种组合函数类:
图片

虽然该组合函数较为简单,但深度学习在人工智能的各项重要任务中表现已接近或优于人类。

深度学习的特点

人们普遍认为深度学习有两个十分重要的特征,即(1)通常包含数百万样本的巨大数据集,和(2)由图形处理单元(GPU)集群产生的巨大计算能力。但深度学习的特征远不止于此:(1)过度参数化:先进的深度学习模型参数数量往往大于样本量;(2)非凸性:即使有GPU的帮助,由于需要最小化的损失函数存在高度非凸性,训练深度模型最差情况仍可能存在NP-Hard问题。下面挑出几个深度学习的突出特征:

深度:深度学习通过组成许多非线性函数来表达复杂的非线性。深度能有效提取对数据集有代表性的特征。相比之下,在浅层模型中增加宽度导致的改进较少。
算法正则化:神经网络的统计性能很大程度上取决于用于训练的特定优化算法。由于过度参数化,深度神经网络中通常存在许多具有不同统计性能的局部最小值,常见的做法是用随机初始化来运行随机梯度下降,并找到具有很好预测精度的模型参数。
隐式先验学习:深度学习的训练过程是自动的,即不涉及人类知识(除了超参数调整)。在自动表示先验分布的情况下,深度学习通常通过迁移学习在类似的数据集上表现良好。

深度学习的相关理论

尽管在实证上取得了成功,但对深度学习的理论支持仍处于起步阶段。设定阶段,对于任何分类器 ,用 表示新样本的预期风险,用表示训练数据集上平均的经验风险。深度学习的关键理论问题为:是由训练算法返回的分类器,为什么其预期风险很小?
为一族神经网络可表达的函数空间,定义为可能的最佳分类器,的最佳分类器,可以将超额误差分为两部分,即近似误差(approximation error)和估计误差(estimation error):
图片

对于深度学习来说,这两个误差都很小。

前馈神经网络

模型设置

图片
整体来看,深度神经网络(DNNs)使用一系列简单的非线性函数的组合来建立非线性的模型。其中○代表两个函数的组合,代表隐藏层数。
图片
,可以递归定义,对于所有。前馈神经网络,也被称为多层感知器(MLPs),是具有特定选择的神经网络,定义为
图片
其中,分别是与第层相关的权重矩阵和偏置/截距,通常是一个简单的给定(已知)非线性函数,称为激活函数。在每一层中,输入向量首先经过仿生变换,然后通过一个固定的非线性函数。如图3所示,简易MLP通常有两个隐藏层。激活函数通常是逐元应用的,常用ReLU(修正线性单元)函数。
图片

其他激活函数有leaky ReLU,、tanh函数和经典的sigmoid函数(现已较少使用)。

给出最终隐藏层的输出和标签,可以定义一个损失函数来最小化。常见的分类问题的损失函数是多项式逻辑损失。用深度学习术语来说,要经过一个仿生变换,然后soft-max函数:
图片
这样,损失被定义为标签和得分向量之间的交叉熵,多指标逻辑回归模型的负对数似然:
图片
其中,。由于参数数量随着深度和宽度的变化而变化,因此对于深度神经网络来说,它可能相当大。

计算图中的反向传播法

训练神经网络遵循经验风险最小化范式,在所有训练数据上使损失最小。这种最小化通常是通过随机梯度下降(SGD)完成的。与梯度下降的方式类似,SGD从某个初始值开始,然后迭代更新参数,将其向负梯度方向移动。不同的地方在于每次更新中,随机抽取一个小的子样本,称为mini-batch——通常大小为32*512,梯度计算只在上进行,而不是在整个batch上,大大节省了梯度计算的计算成本。根据大数定理,尽管有一些随机波动,但这种随机梯度应该接近于全样本梯度。整个训练集的完全训练一次被称为一个epoch。通常,在几个或几十个epoch之后,验证集上的误差会趋于平稳,训练完成。
随机梯度下降的关键在于梯度的计算,其中:
图片

然而,梯度计算对于复杂的模型来说通常十分重要,且对于深度大的模型来说容易出现数值上的不稳定。一种有效的方法——反向传播算法,可以用于计算神经网络的梯度。

反向传播是网络中链式规则的直接应用。顾名思义,计算是以逆向方式进行的。思考神经网络模型和训练的一个更普遍的方法是考虑计算图。计算图是代表变量之间功能关系的有向无环图,在表示函数组成方面非常方便和灵活。此外,还允许以有效的方式计算梯度。考虑一个具有单一隐藏层和正则化的MLP:
图片

相应计算图如图4。每个节点代表一个函数(圈内),它与该函数的输出(圈外)相关联。

图片

当所有节点都从输入开始评估时,前向传递就完成了。反向传播以相反方向计算其他所有节点的梯度。由于链式规则,一个变量的梯度计算只取决于当前节点指向变量的梯度值和在当前变量值上评估的函数导数。因此,每次迭代中,计算图只需要(1)计算和存储前向传递中每个节点的函数评估,(2)计算后向传递中的所有导数。

流行模型

除前馈神经网络外,卷积神经网络(CNNs)和递归神经网络(RNNs)也是流行的深度学习模型。这两种模型的一个重要特征是权重功效,在CNNs中一些模型参数在不同位置时相同的,在RNNs中一些模型参数在不同时间是相同的,这与CNNs的平移不变性和RNNs的静止性概念有关。

卷积神经网络

卷积神经网络(CNN)是一种特殊类型的前馈神经网络,适用于分析具有突出空间结构的数据。CNN有两个构建模块,分别为卷积层和池化层。本部分重点讨论使用CNN进行图像分类。

卷积层(CONV):输入特征需要首先经过仿生变换,再进行逐元非线性激活。区别在于仿生变换的具体形式。卷积层使用一些过滤器从输入中提取局部特征。确切来说,每个过滤器由一个三维张量表示,其中是过滤器的大小(通常为3或5),表示过滤器的总数。的第三维须等于输入特征的维度。每个滤波器与输入特征进行卷积,得到一个单一的特征图,其中
图片
卷积过程见图5。如果把三维张量看作是矢量,那么每个滤波器基本都是计算它们与中以为索引的部分的内积(也可以看作是卷积)。然后将得到的打包成一个大小为的三维张量,其中
图片
图片

卷积层的输出再由非线性激活函数进行激活。在ReLU的情况下,有

图片
卷积和ReLU激活共同从输入中提取特征。与前馈神经网络不同,过滤器在所有位置(i, j)上共享。从直观上看,每个滤波器的作用是提取与相似的特征。

池化层(POOL):池化层是将附近的特征信息聚合成一个。这种下采样方法减少了后续层的特征大小,节省了计算量。池化层的一个常见形式是由最大池化滤波器组成。它计算空间坐标中个邻域的最大值。此外,池化层不涉及任何需要优化的参数。池化层的作用是减少冗余,因为特征图中一个位置(i, j)周围的邻居很可能包含相同的信息。池化过程如图6所示。

图片
此外,还使用全连接层作为构建模块。每个全连接层将输入张量视为一个向量,并计算。全连接层不权重共享,通常用于CNN的最后几层。图7举例描述了著名的LeNet 5,它由两组CONV-POOL层和三个全连接层组成。
图片

递归神经网络

递归神经网络(RNNs)是一个强大的模型家族,被设计用来处理时间序列数据和其他序列数据。RNNs在语音识别、机器翻译、基因组测序等方面有成功的应用。RNN的结构自然形成了一个计算图,并且可以很容易地与其他结构如CNN结合起来,为复杂的任务建立大型的计算图模型。

常规RNNs

假设一般的时间序列输入。一个普通的RNN用一个向量来模拟时间的 “隐藏状态”,这个向量受制于递归公式
图片
通常是一个由来参数化的非线性函数。具体来说,一个有一个隐藏层的普通RNN有以下形式:
图片
其中,是可训练的权重矩阵,是可训练的偏置向量,是时间的输出。像许多经典的时间序列模型一样,这些参数在不同的时间段是共享的。在不同的应用中,该模型可能有不同的输入/输出设置(参见图8),包括:
一对多:一个输入有多个输出,如图8(a)。典型的应用是图像字幕,输入是图像,输出一系列的文字。
多对一:多个输入仅有一个输出,如图8(b)。典型的应用是文本情感分类,输入一个句子中的一系列词,输出一个标签(例如,正面与负面)。
多对多:多个输入和输出,如图8(c)。常见于机器翻译中,输入是源语言的词(比如中文),输出是目标语言的词(比如英语)。
图片

与前馈神经网络的情况一样使用反向传播法使损失函数最小化,其中损失通常为:

图片
其中是分类的类别数量,是输出序列的长度。在训练过程中,梯度是按照相反的时间顺序计算的,因此训练过程通常被称为通过时间的反向传播。

普通RNN有一个明显缺点,当序列很长时很难捕捉到序列数据中的长期依赖关系。这有时是由于梯度爆炸或消失造成的。为了解决这个问题,在实践中,前向传递和后向传递是在一个较短的滑动窗口中实现,而不是完整的序列。尽管在某些情况下是有效的,但并不能完全解决长期依赖性的问题。

GRUs and LSTM

有两个改进的模型可以缓解难以捕捉序列数据中长期依赖关系的问题:门控递归单元(GRU)和长短期记忆(LSTM)。

GRU通过引入门来完善递归公式,这些门是与相同长度的向量。门取值以为元素,与以元素相乘,决定了它们对旧隐藏状态的保留程度。
LSTM同样在递归公式中使用门。除了之外,一个LSTM还保持着一个单元状态,类似于计数器。
这里详细讨论LSTM。用表示元素间的乘法。递归公式被代替为:
图片
其中是一个具有适当尺寸的大权重矩阵。单元状态向量携带序列的信息。遗忘门决定了的值在时间内的保留程度,输入门控制了单元状态的更新量,输出门给出了的揭示程度。与残差网络中的跳过连接类似,单元状态有一个加法递归公式,有助于反向传播从而捕捉到长距离的依赖关系。

多层RNNs

图片
多层RNN是上面讨论的单隐层RNN的泛化。图9显示了一个有两个隐藏层的普通RNN。有个隐藏层的RNN的递归公式为:
图片
多层RNN有两个维度:序列长度和深度。两个特殊情况是第2节中介绍的前馈神经网(),以及有一个隐藏层的RNN()。由于序列很长,多层RNN通常不深。

CNN、RNN和其他神经网络可以很容易地结合起来,以解决涉及不同输入数据来源的任务。这些神经网络组合在一起形成一个大的计算图,因此它们可以使用反向传播法进行训练。这种通用的训练方法在各种应用中提供了很大的灵活性。

模块

深度神经网络本质上是由许多非线性函数组合而成的。一个组件函数可以被设计成在一个特定的任务中具有特定的属性,它本身可以是由几个较简单的函数组成的。因此有了设计模块以建立更复杂的神经网模型的想法。理想的模块通常具有较低的计算成本,缓解训练中的数值问题,并有良好的统计精度。

这里用Inception和跳过连接的例子来说明模块背后的想法。图10(a)是GoogleNet中使用的 'Inception '模块的一个例子。所有的卷积层后面都有ReLU激活函数。来自不同大小的过滤器的信息串联给了这个模型很大的灵活性来捕捉空间信息。

另一个模块,通常称为跳过连接,被广泛用于缓解极深层神经网络中的数值问题,有助于提升优化效率和统计精度。训练非常深的神经网络通常比较困难,但在残差网络中引入跳过连接,可极大缓解这一困难。

图片
跳过连接的高层次想法是为现有的非线性函数添加一个身份映射。让是一个任意的非线性函数,由一个(片段的)神经网络表示,那么跳过连接的想法就是简单地用代替。图10(b)显示了一个残差网络的著名结构——每两层就会增加一个身份图:
图片
其中可以是任何一层的隐藏节点,是相应的参数。通过在所有层中重复(即合成)这种结构,能够轻松地训练具有数百层的神经网络,这克服了深度神经网络中公认的训练困难。此外,深度残差网络还能提高统计精度。跳过连接可以不限于此种形式,在任何一对层,之间使用灵活使用。

深度无监督学习

在有监督学习中,给定标记的训练集,我们专注于判别模型,本质上是通过一个具有参数的深度神经网络来表示。相反,无监督学习的目的是从未标记的数据中提取信息,其中标签不存在。这些信息可以是数据的低维嵌入,也可以是一个具有潜在变量的生成模型,以近似分布。为实现这一目的,引入了两个流行的无监督深度倾斜模型,即自动编码器和生成对抗网络(GANs)。前者可以被看作是一种降维技术,后者可以被看作是一种密度估计方法。DNNs是这两种模型的关键要素。

自动编码器

降维的目标是降低数据的维度,同时保留其突出的特征。特别是在主成分分析(PCA)中,目标是通过一个线性函数将数据嵌入到一个低维空间中,这样可以解释最大方差。同时,我们希望找到线性函数,使之间的差异最小。形式上:
图片
为了简单起见,假设的截距/偏置项为零。那么,PCA相当于最小化二次损失函数:
图片
这与最小化的影响相同,其中是设计矩阵。解决方案是由PCA对的奇异值进行分解。PCA是自动编码器的一个特例,通常被称为不完全线性自动编码器。
图片
广泛来说,自动编码器是用于(非线性)降维的神经网络模型。一个自动编码器有两个关键部分,即编码函数和解码函数,编码函数将输入映射到一个隐藏表示,解码函数将隐藏表示映射到一个点。这两个函数都可以是多层神经网络。自动编码器如图11所示。令是一个损失函数,用来衡量中的差异。与PCA类似,自动编码器被用来寻找编码器和解码器,使尽可能小。

还有其他一些结构化的自动编码器,它们主要通过正则化条款为模型添加所需的属性,如稀疏性或稳健性。下面介绍另外两种常见的自动编码器:

稀疏自动编码器: 人们可能认为隐藏代码的维度大于输入维度,并且允许有一个稀疏的表示。与LASSO或SCAD一样,我们可以在重建损失中添加一个正则化项来激励稀疏性。稀疏自动编码器可以解决:
图片

这类似于字典学习,目的是在一个超完整的基础上找到输入数据的稀疏表示。由于强加的稀疏性,该模型可以潜在地学习数据的有用特征。

去噪自动编码器: 人们可能希望该模型对数据中的噪声具有鲁棒性:即使输入数据被小的噪声所破坏或遗漏了一些成分(噪声水平或遗漏概率通常很小),一个理想的自动编码器应该忠实地恢复原始数据。去噪自动编码器通过明确建立一个噪声数据作为新的输入,然后解决优化问题。去噪自动编码器激励编码器和解码器在输入的附近地区保持稳定。另一种方法是在优化问题中对进行约束,但这通常十分困难。相反,通过在输入中加入小扰动进行抽样的方法较为简单。

生成式对抗性网络

给定未标记的数据,密度估计的目的是估计数据产生的基础概率密度函数。在潜在分布的各种假设下,参数和非参数估计器都已被提出和研究。与这些经典的密度估计器不同的是,生成式对抗网络(GANs)可以被归类为更高维度上的隐性密度估计器。原因有二:(1) GANs更强调从分布中抽样,而非估计;(2)GANs通过源分布和生成器函数隐式地定义密度估计,生成器函数通常是一个深度神经网络。

GANs的抽样观点

图片
假设数据均为真实图像,目标是生成新的自然图像。GAN建立了两个参与者之间的零和游戏模型,即生成器和判别器。生成器尝试生成与真实图像相似的假图像,而判别器旨在区分真假图像。站在数学角度上,生成器由两部分组成,一个源分布(通常是具有数百个维度的标准多变量高斯分布)和一个函数,该函数将中的样本映射到与生活在同一空间的点。这里是由生成的假样本。同样判别器由一个函数组成,它接收一个图像并返回是否为的真实样本的概率。通常情况下,生成函数和判别函数都是由深度神经网络实现的, GANs如图12所示。分别用表示的参数。GAN试图解决以下问题。
图片

GANs的密度估计观点

固定源分布,任何生成器都会在图像空间上引起一个分布。去掉对的限制,上式可以写为:
图片

内部最大化问题是由似然比解决的,因此上式可简化为:

图片

其中JS(k)表示两个分布之间的Jensen-Shannon分歧

图片
换句话说,普通GAN寻求在Jensen-Shannon分歧方面最接近的密度。这种观点允许通过改变距离度量,将GANs概括为其他变体。例如f-GAN、Wasserstein GAN(W-GAN)、MMD GAN等。

GANs比CNN等有监督的深度学习模型更难训练。除了训练难度外,如何客观有效地评估GANs也是正在研究的问题。

代表能力:近似理论

构造多层非线性函数的好处是什么呢?本节将从近似理论的角度来解决这个问题。我们首先重新审视万能近似理论,这些理论大多是浅层神经网络(具有单隐藏层的神经网络),然后提供最近的研究,证明神经网络中深度的好处。

浅层NN的万能近似定理

万能近似理论研究的是在空间中的近似,该函数由一个单隐藏层神经网络代表:
图片
其中,是某激活函数,是神经网络中隐藏单元的数量。对于不同的空间和激活函数,近似误差有上界和下界。下面介绍一些具有代表性的结论。
首先,当时,任何连续函数都可以在温和条件下被某些所近似。宽泛地说,这是因为就像是一个基函数,并且在一个适当的空间中存在基扩展。那么对一个有限的,近似率为多少呢?
的范围限制在的单位球中。对于和整数,考虑和具有标准准则的Sobolev空间:
图片
其中代表以为索引的偏导数。令为函数在Sobolev空间中满足的空间。注意中的函数在阶以下都有有界导数,且函数的平滑性由控制(越大越平滑)。用表示(21)式中的函数空间。Hrushikesh N Mhaskar(1996)提出以下一般上界。
图片
上述定理意味着,单隐藏层神经网络能够以足够的隐藏单元来逼近任何平滑函数。然而,目前还不清楚如何找到一个好的近似估计,也无法控制参数的大小。VE Maiorov and Ron Meir(2000)则阐述了以下(几乎)匹配的下界。
图片
对于平滑函数的自然空间来说,上下界中对的指数依赖可能看起来并不令人满意,然后Andrew R Barron(1993)表明,对于不同的函数空间,有一个很好的由神经网络构成的无维度近似。假设有一个函数有傅里叶表示法:
图片
其中。假设,并且下式有限
图片

Andrew R Barron(1993)发现了以下无维度的近似保证。

图片
从上式看,上界与维度无关。然而可能隐含地依赖于,因为(24)式中涉及到对的积分。为了帮助理解为什么无维度近似成立,下面给出蒙特卡洛的启发式论证。众所周知,在评估高维积分时,蒙特卡洛的近似误差与维度无关。从中以给定密度随机生成。考虑通过下式对(23)式进行近似:
图片
然后是一个具有个隐藏单元和正弦激活函数的单隐藏层神经网络,,其中期望值是相对于的随机性来说的。于是通过独立性,如果, 则有
图片
因此,近似率与维度无关。

多层NN的近似理论

本小节主要介绍Henry W Lin, Max Tegmark, and David Rolnick(2017)和David Rolnick and Max Tegmark(2017)关于深层神经网络的研究结果。

为简单起见,假设输入有有界域是一个一般函数,的逐元应用。考虑一个类似(3)式的神经网络,但其有scaler output:。对任意,一个单元或神经元指的是向量的一个元素。对于一个多变量的多项式,定义为最小的整数,使得对任意,存在一个满足的具有个隐藏层(即)且神经元总数不超过的神经网络。本质上,是很好近似所需的最小神经元数量。
图片
该定理揭示了浅层网络(一个隐藏层)和深层网络之间的明显区别。为了表示一个单项式函数,浅层网络需要指数级数量的神经元,而对深层网络来说,线性数量的神经元就够了。如定理4(i)所示,对的指数依赖与许多领域中广泛存在的维度诅咒一致。深度则规避了这个问题,至少对某些函数来说是这样,它允许我们有效地表示函数组合。
非参数回归的最新进展也支持深度学习网络擅长代表函数这一观点。Benedikt Bauer and Michael Kohler(2017)考虑了参数回归的设置,用数据估计了一个函数。如果真实的回归函数具有一定的层次结构和内在维度,则误差
图片
有一个最佳的收敛率,而不是通常的依赖于维度的收敛率。这为深度神经网络提供了另一个理由:如果数据真的是分层的,那么深度神经网络的近似器的质量就取决于内在维度,这就避免了维度诅咒。

训练深度神经网络

在NN函数类中存在一个好的函数近似器并不能解释为什么在实践中我们可以很容易地找到它们。本节将介绍随机梯度下降方法及其变种,以训练深度神经网络(或找到一个好的近似器)。与许多统计机器学习任务一样,训练DNN遵循经验风险最小化(EMR)范式,它解决了以下优化问题:

图片
其中,衡量神经网络的预测和真实标签的差异。相应地,用表示外样本误差,其中的联合分布。

求解深层神经网路的EMR主要面临以下三类挑战:

  • 可扩展性和非凸性。现代深度学习应用的样本量和参数量可能是巨大的,受限于计算成本和内存限制,许多优化算法并不实用。并且,深度学习中的经验损失函数往往是非凸的,无法明确优化算法是否能使经验损失变小。
  • 数值稳定性。由于DNN层数较多,隐藏节点的量级可能会有很大不同,跨层的递归关系常常导致向前和向后的数值呈指数级增长或下降,使训练过程中出现“梯度爆炸”或“梯度消失”问题。
  • 泛化性能。在远大于的过参数化中,神经网络有可能完美拟合训练集,而在测试集上表现很差。为了避免这种过拟合问题,需要在训练过程中进行适当的正则化,以使神经网络能够泛化。

随机梯度下降(Stochastic gradient descent,SGD)

随机梯度下降(Herbert Robbins and Sutton Monro,1951)是目前解决大规模EMR问题最流行的优化算法,其更新规则如下:

图片
对于是步长(或学习率),是一个初始点,是从中随机选取的。

相比于梯度下降算法在每次更新时都要遍历整个数据集,SGD在更新时仅使用一个样本,因此在计算和内存方面要高效得多(特别是最初几次迭代)。

下面从理论上分析SGD对于最小化的表现如何。首先看损失函数为凸函数的情形。如果适当选择步长,SGD可以保证实现一致性和渐进正态性。
  • 一致性。如果是强凸函数,那么在一些温和条件下,满足以下条件的学习率
图片
保证几乎处处收敛到唯一最小值,即 as 。可以从偏差-方差权衡的角度来看(28)中的要求:第一个条件确保迭代结果可以达到最小化,第二个条件确保随机性不会阻碍收敛(控制方差)。
  • 渐近正态性。Boris Teodorovich Polyak and Yakov Zalmanovich Tsypkin(1979)证明,对于具有固定维度的稳健线性回归,在选择时,在某些规则性条件下是渐进正态的。此外,对SGD迭代结果进行平均化,Boris T Polyak and Anatoli B Juditsky(1992)证明,即使步长较大,对稳健线性回归,平均迭代是渐进有效的。
当损失函数为为非凸时,虽然在最坏的情况下,寻找非凸函数的全局最小值在计算上不可行,但Zeyuan Allen-Zhu, Yuanzhi Li, and Zhao Song(2018)和Simon S Du, Jason D Lee, Haochuan Li, Liwei Wang, and Xiyu Zhai(2018)通过关注过度参数化的深度学习模型产生的损失,绕过了最坏的情况,他们表明只要神经网络充分过度参数化,(随机)梯度下降就会向的全局最小线性收敛。该现象被阐述如下:
图片
尽管理论上得到证明,但朴素SGD(vanilla SGD)仍面临其他挑战:(1)训练算法通常在GPU中实现,因此根据基础设施制定算法十分重要。(2)对深度学习网络来说,朴素SGD可能收敛得很慢。(3)学习率在实践中可能很难调整。为解决以上问题,下面引入SGD的三个重要变体,即小批量梯度下降法(Mini-batch SGD)、基于动量的SGD(Momentum-based SGD)和具有自适应学习率的SGD(SGD with adaptive learning rates)。

小批量梯度下降法(Mini-batch SGD)

现代计算基础设施(如GPU)在若干个样本上估计梯度与在单个样本上估计梯度一样有效,因此,批量大小的小批量SGD通过个随机样本形成随机梯度:
图片
其中,对于每一个中均匀抽样。此方法介于梯度下降和随机梯度下降中间,既有效减小了方差、加速收敛,又使计算更高效。

基于动量的SGD(Momentum-based SGD)

基于动量的SGD,不是沿着当前随机梯度的方向移动迭代,而是平滑过去(随机)梯度来稳定更新方向。在数学上,让为第次迭代的更新方向,即
图片
时,没有使用历史梯度信息,即小批量梯度下降方法。展开,可以发现实际上是过去梯度的指数化平均。基于动量的随机梯度下降法中的动量“平滑”了小批量梯度下降法的振荡方向并积累了持续的下降。值得说明的是,随机设置中的动量理论依据还没有被完全理解。

具有自适应学习率的SGD(SGD with adaptive learning rates)

在优化中,预设条件常被用来加速一阶优化算法,产生更新规则如下:

图片
其中是第步的预设条件。其优点有二:第一,一个好的预设条件可以通过改变局部几何形状使其更加均匀以减少条件数,这有利于快速收敛;第二,一个好的预设条件可以使模型训练免于步长调参。
AdaGrad是一种自适应梯度方法,它基于过去梯度信息建立了一个预设条件
图片
Simon S Du, Jason D Lee, Haochuan Li, Liwei Wang, and Xiyu Zhai(2018)和John Duchi, Elad Hazan, and Yoram Singer(2011)研究表明,AdaGrad通过对频繁出现的特征设置较小的学习率,对不频繁出现的特征设置较大的学习率来适应参数中每个坐标的重要性。在实践中,通常在对角线元素中加入一个很小的量(如)以避免奇异性。由于梯度的历史总和只能随时间增加,AdaGrad的一个显著缺点是有效学习率在学习过程中迅速消失。RMSProp(Geoffrey Hinton, Nitish Srivastava, and Kevin Swersky,2012)是解决这个问题流行的方法,它包含了指数平均的思想:
图片
同样,衰减系数通常被设置为0.9。

缓解数值不稳定性

本小节将讨论ReLU激活函数、跳跃连接、批标准化三类方法以缓解数值不稳定性问题。

ReLU激活函数(ReLU activation function)

Sigmoid函数在输入量很大情况下,导数非常小,许多层的梯度倾向于被“杀死”,这意味着深层网络中梯度近似为0。而ReLU函数,其导数要么是0,要么是1,即使是很大的输入,导数也是1。因此相比Sigmoid函数,ReLU函数具有更优越的训练性能。

跳跃连接(Skip connections)

跳跃连接给训练/优化过程带来便利。假设有一般的非线性函数.通过跳跃连接,有,梯度变为
图片
其中,是单位矩阵。根据链式法则,梯度更新需要计算许多分量的乘积,如,所以最好能保持每个分量的光谱(奇异值)。在神经网络中,通过跳跃连接,这在参数较小的情况下是很容易实现的,否则,即使是经过仔细的初始化和调参也可能无法实现。值得注意的是,在跳跃连接的帮助下,训练具有数百层的神经网络也是有可能的。

批标准化(Batch normalization)

回归分析中,通常会对初始矩阵进行标准化处理,使特征具有零均值和单位方差。批标准化将这个标准化过程从输入层扩展到所有隐藏层。从数学上看,固定一个小批量的输入数据,其中。令为第个样本第层的特征(即为输入),则批标准化通过以下步骤计算标准化的
图片
这里所有的操作都是按元素进行的。换句话说,批标准化就是计算每个特征在小批量中的z-score,并将其作为后续层的输入。为使其更加通用,一个典型的批标准化层有两个额外的参数满足:
图片

批标准化的引入使神经网络的训练更容易更平滑,且在包含层数、隐藏单元数等大量超参数的神经网络中表现良好。

正则化技术

本小节将讨论提高训练后神经网络泛化能力的三种常见方法:权重衰减、Dropout和数据集增强。

权重衰减(Weight decay)

深度学习中的权重衰减是给损失函数添加一个罚项。(9)式给了一个例子,其优化的损失函数为
图片
图片
需要注意的是,偏置项没有被惩罚。如果是最小平方损失,那么带有权重衰减的正则化恰好得到岭回归。由于罚项是一个平滑函数,因此它也可以通过反向传播有效实现。

Dropout

Dropout指在训练过程中通过随机放弃特征子集来避免过拟合。以前馈神经网络的第l层为例,Dropout不是将中的所有特征传递给之后的计算,而是通过下式随机省略其中的一些输入:
图片
其中mask 是Bernoulli变量的一个向量,成功概率为。需要注意的是,对新样本进行测试时,Dropout被禁用,用原始特征来计算输出标签

数据集增强(Data augmentation)

数据增强是一种基于数据不变性结构的扩大数据集的技术。例如,在图像分类中,我们对一个好的分类器应该具备哪些不变性有很强的先验知识,如一个图像的标签不应该被平移、旋转、翻转甚至是图像的裁剪所影响,因此,我们可以通过随机平移、旋转和裁剪原始数据集中的图像来增加数据集内容。

理论解释如下:

图片

泛化能力(Generalization power)

泛化差距(generalization gap),指内外样本误差之间的差距。本节将讨论与泛化有关的两大类方法:与算法无关的控制(algorithm-independent controls)和与算法有关的控制(algorithm-dependent controls)。

与算法无关的控制:一致收敛

与算法无关的控制只注重约束某些深度神经网络所代表的函数类的复杂性。非正式地讲,只要复杂度不是太大,函数类中任何函数的泛化差距是可控的。下面介绍一些必要的符号和事实。首先,研究的关键对象是以下深度为的全连接神经网络的参数化函数类:
图片
其中,代表对参数的某种约束。例如,可以通过约束来限制每个参数的的Frobenius范数。关于复杂性度量,标准做法是使用Rademacher complexity来控制函数类的容量。Rademacher complexity定义如下:
图片
换句话说,Rademacher complexity衡量的是函数类拟合由代表的随机噪声的能力。直观上看,Rademacher complexity较大的函数类更容易过拟合。接下来正式确定Rademacher complexity和外样本误差之间的联系:
图片
定理6说明,只要Rademacher complexity不是太大,函数类中的任何函数的泛化差距可控。有了这种联系,就可以单列出以下的复杂度约束:
图片
若忽略,如果急剧集中在1附近,那么(38)式中的上界从表面上看与网络大小无关。这说明,只要Frobenius范数是有界的,无论参数量如何,神经网络的容量都是可控的。
此外,需要说明两个重要意见:(1)上界(例如)涉及对权重矩阵大小和神经网络深度的隐性依赖,这是很难描述的;(2)Rademacher complexity的上界提供了一个对函数类中所有函数的统一约束,这是一个纯粹的统计结果。其无法解释像SGD这样的标准训练算法如何以及为什么能获得一个具有小范数参数的函数。

与算法有关的控制

本小节将研究算法在深度学习泛化能力中的作用。对于算法的考虑主要出于以下两个动机:(1)由于极端的非凸性,不同算法达到的局部/全局最小值会表现出完全不同的泛化行为;(2)由于一个特定算法并没有探索整个参数空间,所以神经网络的有效容量可能不大。下文将从三个方面,利用算法属性来获得泛化能力的上限。

Mean field view of neural nets

一些现有研究通过隐藏单元数趋于无穷时的近似极限来逼近权重矩阵,从而通过偏微分方程来研究SGD的动力问题。

是一个具有个隐藏单元的单隐藏层神经网络给出的函数,其中是ReLU激活函数,被适当地随机初始化。考虑回归设置,我们希望最小化整体风险,它仅通过的经验分布(其中)是的点质量)依赖于参数。这促使我们等价地表示为,其中是一个将分布映射到实数的函数。在一个合适的缩放极限内,对运行SGD算法,会导致在具有最小化的Wasserstein度量分布空间上的梯度流动。结果表明,只要神经网络过度参数化(即)且步长不太大,那么梯度跟随法就能很好地逼近随机梯度下降步后参数的经验分布。特别是Song Mei, Andrea Montanari, and Phan-Minh Nguyen(2018)已经证明在一定的正则化条件下,有:
图片
其中,代表SGD步长,是梯度流动在时刻的分布。也就是说,SGD产生的下的外样本误差能够被很好地近似。从分布的角度来看优化问题极大地简化了问题的概念,复杂的优化问题现在被转化为它的极限版本。因此,这种分析方法称为平均场透视法。

稳定性(Stability)

本小节通过SGD的稳定性来了解深度学习的泛化能力。如果输入的轻微变化不会对输出产生很大的改变,那么一个算法被认为是稳定的。长期研究发现,稳定的算法具有较小的泛化差距。下面将正式阐述稳定性的概念及其与泛化差距的联系。

表示一种算法(可能是随机的),它读取样本,返回估计参数。Moritz Hardt, Benjamin Recht, and Yoram Singer. Train faster(2015)给出稳定性定义如下:
图片
下面的引理1说明了,一个不均匀稳定的算法,在期望值上会产生较小的泛化差距。
图片

有了引理1,只需证明具体算法的稳定性约束。事实证明,SGD在求解光滑非凸函数时是均匀稳定的。

图片
定理8显示,只要步长相比不大,对非凸损失函数进行SGD确实是均匀稳定的。这与引理1一起证明了SGD在期望中的泛化能力。然而,有两个重要的限制值得一提。首先,引理1提供了期望中的外样本误差上限,但理想情况是,在下,我们希望有像凸函数情况下那样的高概率保证,而不是一个平均保证。其次,仅控制泛化差距并不足以实现小的外样本误差,因为目前还不清楚SGD是否能在步内实现小的训练误差。

隐式正则化(Implicit regularization)

在损失函数中没有进行任何正则化,但梯度下降会自动寻找具有最小范式的解,这种现象被称为隐式正则化。这种现象不仅在训练神经网络时被观察到,在一些简单的场景下也被理论解释,如可分离数据的逻辑回归。在逻辑回归中,给定数据集,其中。可以通过解决以下问题来拟合一个逻辑回归模型:
这里,为逻辑回归损失函数。进一步假设数据是可分离的,即存在,使得对任意,有。在此条件下,对于某满足,损失函数可以无限趋于0。那么当我们用梯度下降法最小化时到底会发生什么呢?Daniel Soudry, Elad Hoffer, Mor Shpigel Nacson,etc(2018)发现了一个引人注目的现象。
图片
上述定理表明,梯度下降法在求解可分离数据的逻辑回归时,隐含地将迭代结果向最大边际向量正则化。越过可以被看作是单层神经网络的逻辑回归,在更深层次的神经网络中,隐式正则化的理论基础仍十分有限。

讨论

本文最后确定了未来研究的几个重要方向。

  • 数据分布的新特征。如何描述高维真实数据的特征,使其摆脱目前的知识障碍,如维度诅咒也许是一个有趣的开放问题。
  • 理解深度学习算法。
  • 稳健性。
  • 低信噪比(SNR)。对于信噪比高的图像数据和音频数据,深度学习取得了巨大的成功,但在许多其他统计问题中,信噪比可能非常低,例如在医疗保健系统中,从病人的病史中可能无法很好地预测疾病的不确定性。如何调整深度学习模型,使其在此类任务中表现出色,是一个值得研究的方向?

参考文献

[1] Herbert Robbins and Sutton Monro. A stochastic approximation method. The Annals of Mathematical Statistics, 22(3):400–407, 1951.
[2] Boris Teodorovich Polyak and Yakov Zalmanovich Tsypkin. Adaptive estimation algorithms: convergence, optimality, stability. Avtomatika i Telemekhanika, (3):71–84, 1979.
[3] Boris T Polyak and Anatoli B Juditsky. Acceleration of stochastic approximation by averaging. SIAM Journal on Control and Optimization, 30(4):838–855, 1992.
[4] Zeyuan Allen-Zhu, Yuanzhi Li, and Zhao Song. A convergence theory for deep learning via overparameterization. arXiv preprint arXiv:1811.03962, 2018.
[5] Simon S Du, Jason D Lee, Haochuan Li, Liwei Wang, and Xiyu Zhai. Gradient descent finds global minima of deep neural networks. arXiv preprint arXiv:1811.03804, 2018.
[6] John Duchi, Elad Hazan, and Yoram Singer. Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12(Jul):2121–2159, 2011.
[7] Geoffrey Hinton, Nitish Srivastava, and Kevin Swersky. Neural networks for machine learning lecture 6a overview of mini-batch gradient descent. 2012.
[8] Noah Golowich, Alexander Rakhlin, and Ohad Shamir. Size-independent sample complexity of neural networks. arXiv preprint arXiv:1712.06541, 2017.
[9] Song Mei, Andrea Montanari, and Phan-Minh Nguyen. A mean field view of the landscape of two-layer neural networks. Proceedings of the National Academy of Sciences, 115(33):E7665–E7671, 2018.
[10] Moritz Hardt, Benjamin Recht, and Yoram Singer. Train faster, generalize better: Stability of stochastic gradient descent. arXiv preprint arXiv:1509.01240, 2015.
[11] Daniel Soudry, Elad Hoffer, Mor Shpigel Nacson, Suriya Gunasekar, and Nathan Srebro. The implicit bias of gradient descent on separable data. The Journal of Machine Learning Research, 19(1):2822–2878, 2018.
[12] Hrushikesh N Mhaskar. Neural networks for optimal approximation of smooth and analytic functions. Neural computation, 8(1):164–177, 1996.
[13] VE Maiorov and Ron Meir. On the near optimality of the stochastic approximation of smooth functions by neural networks. Advances in Computational Mathematics, 13(1):79–103, 2000.
[14] Andrew R Barron. Universal approximation bounds for superpositions of a sigmoidal function. IEEE Transactions on Information theory, 39(3):930–945, 1993.
[15] Henry W Lin, Max Tegmark, and David Rolnick. Why does deep and cheap learning work so well? Journal of Statistical Physics, 168(6):1223–1247, 2017.
[16] David Rolnick and Max Tegmark. The power of deeper networks for expressing natural functions. arXiv preprint arXiv:1705.05502, 2017.
[17] Benedikt Bauer and Michael Kohler. On deep learning as a remedy for the curse of dimensionality in nonparametric regression. Technical report, Technical report, 2017.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多