神经网络算法数据分析(神经网络中的奥卡姆剃刀)
神经网络算法数据分析(神经网络中的奥卡姆剃刀)简而言之,「奥卡姆剃刀」原则可以概括为「如无必要,勿增实体」,即在保证性能的情况下,模型的参数越少越好。就神经网络而言,科学家们早在 1989 年就证明了万有逼近定理——具有任意多隐藏神经元的网络几乎可以逼近任何连续函数。然而,神经网络的泛化能力是我们最为关心的问题之一。1 奥卡姆剃刀而在神经网络方面,「奥卡姆剃刀」原则可以概括为「如无必要,勿增实体」,即在保证性能的情况下,模型的参数越少越好。上海交通大学自然科学研究院/数学学院长聘教轨副教授许志钦近期分享了题为「神经网络中的奥卡姆剃刀:训练中的频率原则和损失景观的嵌入原则」的报告。从频率原则、嵌入原则两个方面展开了讨论。本文整理自青源Talk第十期,视频回看地址:https://event.baai.ac.cn/activities/217
作者丨许志钦
整理丨熊宇轩
编辑丨李梦佳
奥卡姆剃刀是由14世纪方济会修士奥卡姆的威廉提出的逻辑学法则,他在《箴言书注》2卷15题说“切勿浪费多余功夫去做本可以较少功夫完成之事”。
而在神经网络方面,「奥卡姆剃刀」原则可以概括为「如无必要,勿增实体」,即在保证性能的情况下,模型的参数越少越好。
上海交通大学自然科学研究院/数学学院长聘教轨副教授许志钦近期分享了题为「神经网络中的奥卡姆剃刀:训练中的频率原则和损失景观的嵌入原则」的报告。从频率原则、嵌入原则两个方面展开了讨论。
本文整理自青源Talk第十期,视频回看地址:https://event.baai.ac.cn/activities/217
1 奥卡姆剃刀
简而言之,「奥卡姆剃刀」原则可以概括为「如无必要,勿增实体」,即在保证性能的情况下,模型的参数越少越好。就神经网络而言,科学家们早在 1989 年就证明了万有逼近定理——具有任意多隐藏神经元的网络几乎可以逼近任何连续函数。然而,神经网络的泛化能力是我们最为关心的问题之一。
以二分类问题为例,传统的学习理论认为,随着模型复杂度的上升,模型在训练集上的误差会不断下降;在测试集上,随着模型复杂度上升,模型的误差会先下降,而当模型复杂度超过某个阈值后,该误差会转而上升,即出现过拟合现象。
然而,传统的学习理论也许并不完全适用于神经网络的分析。如上图所示,当网络具有 160 万个参数时,仍然可以较好地拟合包含 6 万个数据点的 CIFAR10 数据集,并且在测试集上取得不错的性能。因此,当神经网络的参数量远远大于训练样本数时,它仍然能够具备较好的泛化性能。
对于一维的简单函数而言,我们尝试使用多个具有不同层数的过参数化的神经网络来拟合上图中的 5个数据点。可见,学习出的解具有一定的「平坦性」,而我们还不能很好地解释这种现象。
「无免费午餐」定理指出,没有一种模型可以很好地泛化到所有的数据集上。因此,在针对数据集设计模型时,我们需要分析清楚算法模型和数据本身具有怎样的特点。为了确保算法在数据集上具有很好的泛化性能,我们要尽量使算法的特性满足数据的要求。
过参数化的神经网络的解空间是很大的,用于训练的损失函数并没有显式地指出应该挑选怎样的解。因此研究训练带来的隐式偏好对理解神经网络很重要。我们发现从频率的角度来说,神经网络偏向于先学习低频的输出,而从神经元演化的角度来说,网络在非必要时不会增加有效神经元的数目。这两点观察从不同角度展示了神经网络有偏好用“简单”函数学习训练数据的特点,因此,我们用“奥卡姆剃刀”作为这个报告的题目。
2 频率原则
如上图所示,红色实线代表待拟合的函数,蓝色的虚线是神经网络的拟合结果。随着网络被不断地训练,网络首先会捕获待拟合函数的轮廓,接着会拟合细节。为了理解其中的「平坦性、震荡性、轮廓、细节」等概念,我们不妨从频率的角度出发,在傅里叶空间中分析该现象。
通过对目标函数进行离散傅里叶变换,我们得到了如上图所示的红色虚线,蓝色实线为神经网络的输出。通过观察,我们发现神经网络偏向于首先拟合目标函数的低频部分,然后捕获更高频的部分。为了进一步探究究竟是频率低的部分先收敛,还是幅度大的部分先收敛,我们进行了下面的实验。
如上图所示,目标函数由三个振幅相同、频率不同的正弦函数组成,随着训练轮次的增加,频率越低的部分越先收敛(由蓝变红)。
针对二维图像进行学习时,网络首先会学习到人物的位置,接着会学习到一些细节,最后经过 58 000 步训练后会基本学习到人物的各种细节特征。根据一维、二维情况下的实验结果,我们猜想网络先学习低频部分,再学习高频部分。我们尝试在高维情况下设计实验进一步验证该猜想。
图像数据的频率指的是相邻像素之间强度的变化率。而在图像识别任务中,我们需要考虑的是响应频率(response frequency),此时高频指的是:当输入图像中的像素强度发生微小变化时,输出可能会产生较大的变化。
如果我们直接进行傅里叶变换,会出现维数灾难。比如若每个参数维度,我们只估计两个值,当参数维度为 k 时,待估计的值有 2 的 k 次方个。为了验证神经网络在傅里叶空间低频部分收敛更快的猜想,我们需要采取一些技巧。具体而言,在
中,我们只考虑 k 上的某一个方向,即
。此时,我们相当于在时域空间进行了投影,把傅里叶变换降为了一维。
对 MNIST 与 CIFAR10 进行傅里叶变换后,我们得到两个低频占优的函数。通过观察若干峰值上的相对误差,我们发现低频首先收敛,高频较晚收敛。
接着,我们采用滤波的方法来检验上述猜想。我们将整个傅里叶空间以为半径画一个球,我们定义球内的部分为低频,求外的部分为高频,进而观察每一个部分的收敛速度。具体而言,我们通过将输出乘以示性函数来实现上述设定。为了简化计算,我们用时域空间的卷积替代傅里叶空间的乘积,利用高斯核近似示性函数(高斯核的傅里叶变换还是高斯核)。完成滤波后,我们就得到了输出的低频部分,用原始输出减去低频部分就得到了高频部分。我们在 DNN、CNN、VGG 三种模型上分别选用不同的高斯核宽度测试了神经网络的收敛性,实验结果表明,在高维空间中,低频部分率先收敛,高频部分后收敛。
3 泛化性的差异
如上图所示,DNN 在 MNIST 和 CIFAR10 上的泛化性能较好,而在奇偶函数上的泛化性能较差。奇偶函数在每个维度上都只定义在 -1、1 两个点上,该函数的输出为每个维度上的值的乘积。因此,若存在偶数个 -1 则输出 1,若存在奇数个 -1 则输出 -1。如果我们改变某个维度上值的符号,则函数的最终输出符号也会变化,因此该函数是个高频的函数。如上图(c)中绿色的曲线所示,随着频率的增加,奇偶函数的幅度会上升。对于没有采样到的点,神经网络会用低频插值,得到下方的蓝色虚线,它与真实情况(橙色)差异很大。因此,神经网络很难学习高频震荡的数据,我们很难通过简单的调参得到理想的模型性能。简而言之,频率原则可以被概括为「如无必要,勿增频率」,即低频有效原理。
4 算法设计
在求解偏微分方程的问题中,频率原则也具有很重要的指导作用。假设某个高频函数是剧烈震荡的,我们可以通过在二维空间的 x 轴方向将该函数拉长从而降低其频率。具体而言,我们将具有若干神经元的隐藏层分为 n 组,其中第k组将输入拉长k倍。在使用梯度下降法训练神经网络时,假设存在某一条通路的频率使得损失函数下降最快,我们猜想梯度会沿着该通路传递。
实验结果如上图所示,图(a)为偏微分方程的真解,它在二维空间中有许多「空心」部分,红色和蓝色的部分表示震荡十分剧烈。通过普通神经网络进行学习可以「磨平」震荡的部分,而使用相同大小的多尺度网络可以将震荡部分很好地学习出来。在更高维的偏微分方程问题中,损失函数也可以降到比较低的水平。
在三维点云重建任务中,研究人员发现用正弦、余弦函数作为激活函数时,通过多尺度的神经网络(其中,表示不同的尺度)可以很好地重建三维结构的细节。Qing Wu 等人在论文「IREM:High-Resolution Magnetic Resonance Image Reconstruction via Implicit Neural Representation」中将多尺度网络成功用于 MRI 三维重建任务。华为的科学家们在 MindSpore Science 中,将多尺度残差网络和正弦激活函数相结合,有效提升了网络捕捉多频信号的能力,可以很好地求解麦克斯韦方程。
5 频率原则的局限性
仅用频率原则的视角也存在一定的局限性。如上图所示,我们使用 4 个数据点作为训练集,用激活函数为 ReLU的神经网络去学习这些数据。尽管在不同的初始化情况下学习到的解不一致,但是它们都满足频率原则。为了进一步分析神经网络,我们将观察每个神经元的学习过程。
每个神经元会用一个权重与输入 x 做内积,而内积可以理解为投影,可以捕获沿某个方向的特征。为此,我们将重点分析特征的方向(即w)和幅度(即|a||w|)。在这里,我们将偏置项融入w中,在考虑一维输入时,w为二维向量,我们可以使用角度来刻画该二维向量的方向。
因此,在上方的散点图中,横坐标为输入权值与偏置项构成的二维向量的角度,纵坐标为幅度。每一点代表一个神经元的状态,蓝绿色的点代表神经元的初始状态,红色的点为神经元训练后的状态。实验结果表明,对于第一种初始化