来源: 智源社区
作者:许志钦
整理:熊宇轩
编辑:李梦佳
本文整理自青源Talk第十期,视频回看地址:https://event.baai.ac.cn/activities/217
【专栏:研究思路】奥卡姆剃刀是由14世纪方济会修士奥卡姆的威廉提出的逻辑学法则,他在《箴言书注》2卷15题说“切勿浪费多余功夫去做本可以较少功夫完成之事”。
而在神经网络方面,「奥卡姆剃刀」原则可以概括为「如无必要,勿增实体」,即在保证性能的情况下,训练使得模型的有效参数尽量少。
上海交通大学自然科学研究院/数学学院长聘教轨副教授许志钦近期分享了题为「神经网络中的奥卡姆剃刀:训练中的频率原则和损失景观的嵌入原则」的报告。从频率原则、嵌入原则两个方面展开了讨论。
01
奥卡姆剃刀
简而言之,「奥卡姆剃刀」原则可以概括为「如无必要,勿增实体」,即在保证性能的情况下,训练使得模型的有效参数尽量少。就神经网络而言,科学家们早在 1989 年就证明了万有逼近定理——具有任意多隐藏神经元的网络几乎可以逼近任何连续函数。然而,神经网络的泛化能力是我们最为关心的问题之一。
以二分类问题为例,传统的学习理论认为,随着模型复杂度的上升,模型在训练集上的误差会不断下降;在测试集上,随着模型复杂度上升,模型的误差会先下降,而当模型复杂度超过某个阈值后,该误差会转而上升,即出现过拟合现象。
然而,传统的学习理论也许并不完全适用于神经网络的分析。如上图所示,当网络具有 160 万个参数时,仍然可以较好地拟合包含 6 万个数据点的 CIFAR10 数据集,并且在测试集上取得不错的性能。因此,当神经网络的参数量远远大于训练样本数时,它仍然能够具备较好的泛化性能。
对于一维的简单函数而言,我们尝试使用多个具有不同层数的过参数化的神经网络来拟合上图中的 5个数据点。可见,学习出的解具有一定的「平坦性」,而我们还不能很好地解释这种现象。
「无免费午餐」定理指出,没有一种模型可以很好地泛化到所有的数据集上。因此,在针对数据集设计模型时,我们需要分析清楚算法模型和数据本身具有怎样的特点。为了确保算法在数据集上具有很好的泛化性能,我们要尽量使算法的特性满足数据的要求。
过参数化的神经网络的解空间是很大的,用于训练的损失函数并没有显式地指出应该挑选怎样的解。因此研究训练带来的隐式偏好对理解神经网络很重要。我们发现从频率的角度来说,神经网络偏向于先学习低频的输出,而从神经元演化的角度来说,网络在非必要时不会增加有效神经元的数目。这两点观察从不同角度展示了神经网络有偏好用“简单”函数学习训练数据的特点,因此,我们用“奥卡姆剃刀”作为这个报告的题目。
02
频率原则
如上图所示,红色实线代表待拟合的函数,蓝色的虚线是神经网络的拟合结果。随着网络被不断地训练,网络首先会捕获待拟合函数的轮廓,接着会拟合细节。为了理解其中的「平坦性、震荡性、轮廓、细节」等概念,我们不妨从频率的角度出发,在傅里叶空间中分析该现象。
通过对目标函数进行离散傅里叶变换,我们得到了如上图所示的红色虚线,蓝色实线为神经网络的输出。通过观察,我们发现神经网络偏向于首先拟合目标函数的低频部分,然后捕获更高频的部分。为了进一步探究究竟是频率低的部分先收敛,还是幅度大的部分先收敛,我们进行了下面的实验。
如上图所示,目标函数由三个振幅相同、频率不同的正弦函数组成,随着训练轮次的增加,频率越低的部分越先收敛(由蓝变红)。
针对二维图像进行学习时,网络首先会学习到人物的位置,接着会学习到一些细节,最后经过 58,000 步训练后会基本学习到人物的各种细节特征。根据一维、二维情况下的实验结果,我们猜想网络先学习低频部分,再学习高频部分。我们尝试在高维情况下设计实验进一步验证该猜想。
图像数据的频率指的是相邻像素之间强度的变化率。而在图像识别任务中,我们需要考虑的是响应频率(response frequency),此时高频指的是:当输入图像中的像素强度发生微小变化时,输出可能会产生较大的变化。
如果我们直接进行傅里叶变换,会出现维数灾难。比如若每个参数维度,我们只估计两个值,当参数维度为 k 时,待估计的值有 2 的 k 次方个。为了验证神经网络在傅里叶空间低频部分收敛更快的猜想,我们需要采取一些技巧。具体而言,在中,我们只考虑 k 上的某一个方向,即。此时,我们相当于在时域空间进行了投影,把傅里叶变换降为了一维。
对 MNIST 与 CIFAR10 进行傅里叶变换后,我们得到两个低频占优的函数。通过观察若干峰值上的相对误差,我们发现低频首先收敛,高频较晚收敛。
接着,我们采用滤波的方法来检验上述猜想。我们将整个傅里叶空间以为半径画一个球,我们定义球内的部分为低频,求外的部分为高频,进而观察每一个部分的收敛速度。具体而言,我们通过将输出乘以示性函数来实现上述设定。为了简化计算,我们用时域空间的卷积替代傅里叶空间的乘积,利用高斯核近似示性函数(高斯核的傅里叶变换还是高斯核)。完成滤波后,我们就得到了输出的低频部分,用原始输出减去低频部分就得到了高频部分。我们在 DNN、CNN、VGG 三种模型上分别选用不同的高斯核宽度测试了神经网络的收敛性,实验结果表明,在高维空间中,低频部分率先收敛,高频部分后收敛。
03
泛化性的差异
如上图所示,DNN 在 MNIST 和 CIFAR10 上的泛化性能较好,而在奇偶函数上的泛化性能较差。奇偶函数在每个维度上都只定义在 -1、1 两个点上,该函数的输出为每个维度上的值的乘积。因此,若存在偶数个 -1 则输出 1,若存在奇数个 -1 则输出 -1。如果我们改变某个维度上值的符号,则函数的最终输出符号也会变化,因此该函数是个高频的函数。如上图(c)中绿色的曲线所示,随着频率的增加,奇偶函数的幅度会上升。对于没有采样到的点,神经网络会用低频插值,得到下方的蓝色虚线,它与真实情况(橙色)差异很大。因此,神经网络很难学习高频震荡的数据,我们很难通过简单的调参得到理想的模型性能。简而言之,频率原则可以被概括为「如无必要,勿增频率」,即低频有效原理。
04
算法设计
在求解偏微分方程的问题中,频率原则也具有很重要的指导作用。假设某个高频函数是剧烈震荡的,我们可以通过在二维空间的 x 轴方向将该函数拉长从而降低其频率。具体而言,我们将具有若干神经元的隐藏层分为 n 组,其中第k组将输入拉长k倍。在使用梯度下降法训练神经网络时,假设存在某一条通路的频率使得损失函数下降最快,我们猜想梯度会沿着该通路传递。
实验结果如上图所示,图(a)为偏微分方程的真解,它在二维空间中有许多「空心」部分,红色和蓝色的部分表示震荡十分剧烈。通过普通神经网络进行学习可以「磨平」震荡的部分,而使用相同大小的多尺度网络可以将震荡部分很好地学习出来。在更高维的偏微分方程问题中,损失函数也可以降到比较低的水平。
在三维点云重建任务中,研究人员发现用正弦、余弦函数作为激活函数时,通过多尺度的神经网络(其中,表示不同的尺度)可以很好地重建三维结构的细节。Qing Wu 等人在论文「IREM:High-Resolution Magnetic Resonance Image Reconstruction via Implicit Neural Representation」中将多尺度网络成功用于 MRI 三维重建任务。华为的科学家们在 MindSpore Science 中,将多尺度残差网络和正弦激活函数相结合,有效提升了网络捕捉多频信号的能力,可以很好地求解麦克斯韦方程。
05
频率原则的局限性
仅用频率原则的视角也存在一定的局限性。如上图所示,我们使用 4 个数据点作为训练集,用激活函数为 ReLU的神经网络去学习这些数据。尽管在不同的初始化情况下学习到的解不一致,但是它们都满足频率原则。为了进一步分析神经网络,我们将观察每个神经元的学习过程。
每个神经元会用一个权重与输入 x 做内积,而内积可以理解为投影,可以捕获沿某个方向的特征。为此,我们将重点分析特征的方向(即w)和幅度(即|a||w|)。在这里,我们将偏置项融入w中,在考虑一维输入时,w为二维向量,我们可以使用角度来刻画该二维向量的方向。
因此,在上方的散点图中,横坐标为输入权值与偏置项构成的二维向量的角度,纵坐标为幅度。每一点代表一个神经元的状态,蓝绿色的点代表神经元的初始状态,红色的点为神经元训练后的状态。实验结果表明,对于第一种初始化𝛾=0.5,初始态和末态的分布的距离十分接近,因此我们可以对末态的神经网络在初态的参数位置进行一阶的泰勒展开,忽略高阶项,这个初始化正是研究许多的神经正切核(NTK)使用的初始化。当减小权重的初始化的值时(𝛾=1,平均场模型使用的初始化方案),为了学习到一阶输出,参数相较于初态的偏移较远。如上图所示,其偏移的路径在方向上有一定的聚集性。当初始化更小时(𝛾=1.75)时,神经元极端地只聚集在两个方向上。我们把这类稀疏现象称为凝聚。
上述神经元凝聚现象带来了一个明显的好处,那就是限制大网络的表达能力。假设在初始状态时,某个 2 层网络输入层的神经元与隐藏层神经元之间的参数权重各不相同。经过一段时间的训练后,输入层的每个神经元相对于隐藏层各神经元的参数权重会凝聚到相同的方向。因此,我们可以对网络进行简化,将隐藏层中的多个神经元替换为一个神经元,分别将红色和绿色剪头代表的权重合并起来,并且将隐藏层中各神经元的输出相加。因此,这个大网络可以等效成一个只有一个隐藏神经元的小网络。
因此,尽管神经网络往往具有大量的参数,但是有效的神经元较为有限。在上图左侧的例子中,有效神经元只在两个方向上起作用。从某种意义上说,神经网络限制了自己的能力,在神经元宽度较大时,它在特征的方向上具有一定的稀疏性。鄂维南院士团队的另一篇论文指出,当网络宽度较小时,活跃的神经元会呈现出一定的稀疏性,有许多神经元处于安静状态。这是两种不同的稀疏性。前面提到的迷题:为什么过参数化的神经网络会泛化好。通过研究这个凝聚现象,这个迷题可以一定程度得到解释,也就是大网络只是表面上很大,经过训练后,它的有效表达能力被限制得很小。接下来我们研究什么样的初始化下会使得神经网络有线性或者凝聚现象。
06
网络初始化、线性与凝聚现象
为了简化问题和让现象更加干净,我们考虑无穷宽极限下的两层ReLU网络。,我们考虑含有三个参数(前置因子,输出权重,输入权重)的两层 ReLU 网络。为了简化该问题,我们对输出权重和输入权重进行归一化。在不考虑时间的情况下,我们可以将三个参数简化为两个参数。
此时,当网络宽度趋于无穷时,网络将会变得十分简单,蓝色的部分为线性区域,而绿色区域则代表发生神经元凝聚现象的情况。在凝聚区域,随着神经元数目增大、网络变宽,神经元的凝聚现象会越来越明显,使得等效神经元网络变得很小。此时,我们可以用传统的学习理论来分析网络。神经元的凝聚现象说明,「如无必要,勿增神经元」,即「小」网络有效原理。
07
嵌入原则
尽管原始的大网络与只具有两个 ReLU 神经元的网络具有一定的相似性,但是我们在实际的应用场景下往往不可能只使用包含两个神经元的网络。特别是存在高频的情况下,我们会训练较深、较宽的网络。为了研究上述两种网络的异同,我们发现了网络训练中损失景观的嵌入原则。
08
能量损失景观
能量损失景观指的是损失函数的形状。如上图所示,我们可以通过优化的方法在高维损失函数中寻找一个与图片很相似的截面。实验表明,损失函数的截面极其复杂,几乎可以是任意形状。尽管损失函数很复杂,但是在经验上,我们在训练中往往也很少陷入局部最小值。因此,复杂的损失函数中存在一些有用的结构,我们需要利用这些有用的结构。这种有用的结构就好比道路上的红绿灯和交通警察,通过某些规则引导损失函数,吸引或阻止其下降。在损失函数景观中,鞍点就可以起到这种吸引训练轨迹的作用。
大网络与小网络的相似之处
如上图所示,当我们对包含 500 个神经元的网络进行训练时,损失函数会经历一个下降很慢的过程,可以推测,此时训练轨迹位于损失函数鞍点附近,其梯度非常小。在上图中间的部分里,红色的实线代表该大网络的输出,蓝色散点代表训练数据,黑色虚线代表只包含一个隐藏神经元的网络的全局最小值。可见,黑色虚线与红色实线几乎重叠,说明大网络与小网络存在一定的关联。与此类似,包含三个神经元的网络的全局最小值与大网络的最终训练结果几乎重叠。尽管我们不能简单地认为包含 500 个神经元的网络的极值点与包含 1 个神经元的网络的极值点相同,但是从输出函数的角度来说,我们猜想大网络的临界函数(神经网络在极值点处的输出)包含小网络的临界函数。
为此,我们进行了一系列实验,发现不同宽度的网络在训练过程中都会被同一位置的某种鞍点吸引,损失函数呈现出一定的「平坦性」,且此时神经网络的输出十分相似。
我们猜想,网络在初始情况下可能处于较为「混乱」的状态。随着网络被不断地训练,损失函数可能首先会到达由一个神经元组成的网络的极小值点,进而到达由三个神经元组成的网络的极小值点,这与前文所述的神经元凝聚现象相对应。因此,尽管初始的神经网络可能非常复杂,但是某些吸引点会迫使损失函数先趋向于某些简单的临界函数。
我们接下来证明大网络损失景观确实包含较小网络的临界函数。如上图所示,我们重点关注第 l 层的黑色神经元。通过神经元凝聚的逆过程,我们将该神经元拆成一个蓝色的神经元和一个紫色的神经元,这两个神经元的输入是相同的。这两个神经元相对于与第 l+1 层的权重分别为黑色神经元输出权重的α和1-α。此时,我们可以证明上如图所示的两个结论,即两个网络的输出函数一样,且若小网络的参数是极值点,则大网络也是极值点。由于是一个自由的参数,极值点从一个点变为了一个流形。
通过上述简单的证明,我们得到了神经网络中的「嵌入原则」。除了这种通过实验驱动的研究得到的「一步嵌入原则」,我们也提出了更一般的嵌入原则。我们发现,由一个神经元组成的网络的极值点对应的临界函数包含于由两个神经元组成的网络的临界函数集合,这种嵌入体现出一定的层次性。
09
大网络与小网络的差异
由于α是自由的,一个点的极值经过加入一个神经元的嵌入之后,可以得到一条直线,该直线上的所有点都是极值点。类似地,当我们再加入一个神经元之后,临界函数就退化到了一个二维平面上。因此,当临界函数越简单时,退化的维度会越大,此时其体积越大。当神经网络宽度很大时,简单的临界函数会形成一个高维的流形。这种损失景观的层级结构体现出了一种偏序关系。
如上图所示,我们在实验中计算极值点的 Hessian 矩阵及其特征值。当网络包含两个神经元时,所有特征值都大于零,该点为极小值点。当我们通过一步嵌入将两个神经元扩展为三个神经元时,有一个特征值变得非常小,退化维度增加了;有一个特征值变为了负值,该点从极小值点变为了鞍点。当我们继续将网络扩展为包含四个神经元时,退化维度会继续增加,负的特征值也会变多,其下降方向越多,更容易训练。可见,这提供了一种机制去解释大网络在实践中为什么似乎更容易训练,更容易找到全局最小值。
我们可以直观地猜测,从随机初始化状态出发,网络在训练过程中会逐渐被包含越来越多神经元的网络的极值点吸引,即有效神经元的数目越来越多。
10
应用
就应用而言,我们可以利用神经元凝聚现象对网络进行剪枝。如上图(a)所示,在蓝色点附近,训练轨迹被损失函数的某个鞍点所吸引,该点可能是由简单网络嵌入而来。网络中许多神经元的权重方向内积接近于 1,即其方向类似。因此,我们可以将 400 个神经元压缩为 58 个神经元。通过对这 58 个神经元进行几步训练后,压缩后的网络的损失函数会到达几乎与原网络一模一样的极值点处。
我们猜想,神经网路的损失景观并不像凸函数或者广义线性模型那样简单,也没有蛋白质折叠那么复杂。神经网络的损失景观可能具有某种层级结构,可以使训练更加简单。
综上所述,嵌入原则表明,大网络的临界函数包含小网络的临界函数,这为神经元的凝聚现象提供了基础,使得神经网络的损失函数会在训练中被具有简单输出函数的鞍点所吸引。由于越简单的临界函数的「体积」越大,因此我们会有更大的概率进入简单的神经元的极值点附近,然后为更好拟合数据,网络会慢慢增加有效神经元的数目。如果没有必要,网络就不会增加有效的神经元,即「奥卡姆剃刀」原则。
总结一下,我们在本报告中从实验出发,介绍了神经网络在训练中具有类似「奥卡姆剃刀」原则,即倾向于用低频函数(频率原则)和少量有效神经元(凝聚现象、嵌入原则)来拟合数据的算法特点。这些结果展示了神经网络的优势(比如对低频函数的泛化好)和不足(比如对高频函数难学习,泛化差),为神经网络算法设计和调参提供了一定的帮助。
未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。
如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”