数学家究竟在研究神经网络的什么?
我们先考虑一个普通的数学问题。假设有一个未知函数 ,我们希望找到它,但是不知道它的具体表达式,只知道一些观测数据 ,其中 。
最基本的办法是选择某个函数族 ,然后在这个函数族中寻找能够拟合数据的函数。这里的 是参数。例如,对于二次多项式 ,对应的参数就是 。
这样一来,寻找函数就变成了寻找参数。我们可以定义损失函数:
然后求解最优化问题 。到这里为止,整个过程仍然是一个比较容易理解的函数逼近问题。
但是数学研究者关心的,往往是如下三个问题:
- 如果 ,能否保证我们找到了真正想要的函数?
- 所有满足 的参数组成什么样的集合?
- 如果使用梯度下降,参数为什么会沿着某些特定的方向移动?
这三个问题分别涉及变分问题的正确性、极小值集合的几何,以及优化动力系统,这正好对应报告前半部分的 math4ai 主要内容。
神经网络能够把错误的答案学得很好
考虑二阶微分方程 。如果我们知道 ,那么求解 就是一个普通的微分方程问题。例如,当 时,积分两次可以得到 。如果再给出两个边界条件,就可以确定积分常数。
现在我们把方程推广成:
这里的 可以理解为一个系数函数。如果 足够光滑,根据乘积求导法则,有 ,因此方程可以写成 。现在我们考虑不连续的情况。
系数不连续产生的问题
报告给出了一个非常具体的例子。令:
考虑边值问题 ,并要求 。问题在于:左右两侧求出的函数,应该满足什么拼接条件?
对于这个方程,除了 本身的连续性,我们还需要满足:
这叫作通量连续条件。
为了理解这个条件,可以引入新函数 。此时原方程就变成了 。如果 是普通的可积函数,那么 就不应该在内部突然出现一个额外的跳跃,否则它的分布导数中会产生奇异项。
报告给出的正确解是:
左侧导数为 ,右侧导数为 ,显然一阶导数并不连续。
但是乘上系数之后,左右两侧的通量分别为:
两者相等,因此 。这才满足原方程要求的界面条件。
这个例子说明:对于具有不连续系数的微分方程,解的导数连续并不一定正确,真正需要保持连续的可能是由方程决定的通量。
神经网络反而给出了错误的函数
现在引入 PINN,即物理信息神经网络(Physics-Informed Neural Network)。
它的基本思想很简单:既然我们知道微分方程,为什么不让神经网络输出一个函数,然后直接检查这个函数是否满足微分方程?
设 是神经网络,我们希望它满足 ,于是构造损失函数:
再加上边界条件对应的损失,通过梯度下降训练。这个想法看起来很合理,但是计算机通常是在一批采样点上计算微分残差,而不是直接检查整个方程的分布意义。
只要采样点没有落在 ,我们就有 。因此在这些采样点上,,实际使用的逐点残差就会变成 。
于是出现一个严重问题:网络实际上可能在逼近另外一个微分方程的解。
报告把这个问题称为修正方程(Modified Equation)。对应的错误解为:
现在检查这个函数。它的左右导数分别为 和 ,因此导数连续。
但是通量并不连续。左侧通量为 ,右侧通量为 ,所以这个函数不满足原始微分方程的界面条件。然而,它在界面以外满足对应的逐点残差方程,而且满足边界条件。
引入弱解
我们不再要求方程在每个点都有经典意义,而是要求上面的积分恒等式对所有测试函数成立。这就是弱形式的基本思想。如果加入零边界条件,典型的解空间是 ,其中 是 Sobolev 空间。它允许函数只有弱导数,不要求函数拥有连续的经典导数。
报告中的正确解恰好具有以下特征:
- 函数本身连续;
- 一阶导数分段存在;
- 一阶导数在界面跳跃;
- 通量 连续。
这样的函数可以自然地放在 Sobolev 空间框架中讨论。而且,弱形式能够检测界面的通量跳跃。如果通量不连续,那么它的分布导数中就会出现 Dirac 测度。
对于前面那个错误解,在分布意义下有:
其中 是集中在 的 Dirac 测度。这意味着错误解事实上满足的是带有额外奇异源项的方程,而不是原始方程。
报告最终解决方法是双网络法。对于原方程 ,我们可以引入新变量 ,于是得到一个一阶系统:
现在使用两个神经网络 和 ,分别逼近 和 。训练时要求 ,同时要求 。
例如,可以构造损失函数:
此外还需要加入相应的边界条件。
这个办法的数学动机在于:把原本隐藏在一个二阶方程中的通量条件,转化为显式的一阶关系。当相关函数空间和收敛条件得到适当控制时,这种形式有助于保留正确的界面信息。
神经网络的极小值几何结构
这一部分需要一点微分几何和非凸优化知识,但我们可以从线性代数开始理解。
假设一个方程组只有一个方程 ,却有两个未知数。显然,这个方程无法唯一确定解,因为所有满足条件的点都构成一条直线 。这是最简单的欠定问题。神经网络中也会发生类似现象:假设训练数据只有 个,但模型具有 个参数,而且 ,这时我们称模型具有过参数化(Overparameterization)特征。
注意,过参数化并不自动保证所有参数都自由,也不保证训练一定成功。但是,它为大量不同参数实现相同训练结果创造了可能。
考虑残差向量:
这是一个从 到 的映射,即 。对应的损失函数为 。如果残差满足 ,那么损失也为零。因此,零残差集合就是 。
假设在某个零残差点 附近,映射 的 Jacobian 满足 。那么在这个点附近,零残差集合 是一个维数为 的光滑流形。假设参数空间是100维,而训练残差只有10个独立约束,那么在相应的正则性条件成立时,零残差集合局部可能是一个90维流形。
现在考虑损失函数 ,记 为残差映射的 Jacobian,那么一阶导数为 。
再次求导得到:
在零残差点处,由于 ,第二项消失,因此:
现在利用线性代数中的秩关系 ,可以得到 。
这意味着,当参数维数远大于残差维数时,Hessian 必然具有大量零特征值。
这意味着沿着某些参数方向移动,可能不会改变模型在训练样本上的输出。在这些方向上,损失函数至少在二阶近似中是平坦的,这就是所谓的平坦方。
不过需要注意,Hessian 存在零特征值,并不必然意味着存在一条真正平坦的曲线。如果高阶项不为零,函数仍然可能发生变化。只有结合适当的正则性条件,才能把这些方向解释为极小值流形的切向方向。
关于研究分支
即使我们知道零损失点构成一个集合,也不能保证这个集合处处光滑。
考虑非负函数 ,显然有 。因此,它的全局极小值集合为:
也就是说,这个集合由两条坐标轴组成,可以把它想象成一个十字形。
这个集合具有两个分支:横轴与纵轴。在远离原点的位置,每个分支都很光滑;但在原点处,两个分支发生相交,因此整个集合在这个交点附近不能被视为一条一维光滑流形。
对于神经网络而言,参数冗余、神经元之间的对称性,以及不同的有效表示方式,都可能造成不同类型的极小值分支。报告研究的正是这类结构。
Morse理论
如果 ,我们通常会考察 Hessian 矩阵 。
传统 Morse 理论主要研究 Hessian 非退化的临界点,即满足 的临界点。但刚才我们已经看到,过参数化神经网络的 Hessian 很容易退化,因此普通的 Morse 临界点理论可能不适用。
Morse–Bott 理论则允许临界点形成一个流形。在非退化的法向方向上,函数仍然具有标准二次型结构。
其核心条件可以写成:
其中 是临界流形 在 点的切空间。
对于局部极小值流形,法向二次型是正定的;对于鞍点流形,法向二次型还可能包含负方向。于是,我们便可以研究沿流形的平坦方向、离开流形的稳定方向,以及不稳定方向之间的关系。
需要注意,刚才两条坐标轴相交的例子,在原点并不满足 Morse–Bott 的常规假设,因为那里存在奇异交点。这说明研究不同分支及其交汇位置时,还需要额外分析。
如何影响训练?
现在重新回到梯度下降。如果采用连续时间模型:
这就叫作梯度流(Gradient Flow),它是梯度下降的连续时间对应物。
沿着梯度流轨道,可以计算损失函数随时间的变化:
因此,损失函数不会增加。但是,这个结论并没有告诉我们参数最终会进入哪个极小值分支。继续考虑前面的例子 ,它的梯度流为 和 。
现在考察 随时间的变化,可以得到:
因此 ,其中 是由初始条件决定的常数。它说明梯度流并不能在参数空间中任意移动,而是受到动力学不变量的约束。不同的初始条件可能导致轨道进入不同的极小值分支。
这只是一个简单模型,但已经体现了报告研究的核心思想:极小值集合的几何结构与梯度流的动力学行为是相互关联的。报告进一步研究了不同的全局极小值分支,以及样本量增加后,某些仅仅拟合有限训练样本的分支何时消失。
研究者希望知道:随着样本数量增加,哪些原本只能拟合有限样本的极小值分支会被排除掉?
梯度下降为什么会受到模型结构的约束?
对于梯度流 ,我们往往把它理解成参数沿着最陡下降方向运动。
但是所有参数方向都能够被梯度流利用吗?答案未必。模型的结构可能导致梯度只能落在某些特殊的子空间中。
先看一个简单例子。假设模型为 ,也就是说,模型只依赖两个参数之和 。于是损失函数也只依赖 ,可以写成 。
求梯度得到:
因此,梯度流满足 和 。
现在考察两个参数之差:
所以 ,其中 是常数。这意味着,不论损失函数 具体是什么,只要它通过 依赖参数,梯度流就保持两个参数的差值不变。因而每一条直线 都是梯度流的不变集合。这就引出了报告中的结构不变流形(Structural Invariant Manifold,SIM)。
首先看“不变”。假设动力系统为 ,如果初始点满足 ,并且以后始终满足 ,那么 就是这个动力系统的不变流形。
在光滑情形下,一个关键条件是:
它的意思是向量场始终与这个流形相切。因此,在相应的光滑性与解的唯一性条件下,轨道不会离开流形。
其次看“结构”。前面那个例子中, 之所以保持不变,是因为模型只依赖参数之和。这个不变量来自模型本身的表达形式,并不依赖某一次训练恰好选中了什么数据。
500个神经元可能暂时只相当于一个
这是关于神经元凝聚的部分。
考虑函数:
这是一个最基本的两层神经网络。其中, 是输入, 是第 个神经元的权重向量, 是输出权重, 是激活函数,例如 ReLU。
ReLU 的定义为 。我们可以把每个函数 理解成一个基本函数,整个神经网络就是这些基本函数的线性组合。因此,神经网络实际上需要学习两类东西:一类是基本函数的方向 ,另一类是这些基本函数的组合系数 。
神经元数量不等于实际表达能力
假设两个神经元的方向完全一致,即 ,那么:
虽然模型使用了两个神经元,但实际上只产生了一个基本函数。
更一般地,对于 ReLU,由于它具有正齐次性 ,其中 ,如果所有神经元的方向满足 ,且 ,那么:
也就是说,即使模型拥有500个神经元,只要这些神经元的方向完全凝聚,它们就可能等价于一个神经元。
实验的目标函数可以由3个神经元表示:
但是研究者使用了500个神经元进行训练,并且选择了非常小的初始参数。
随后,他们观察到损失函数的变化呈现出三个阶段:最初损失下降,接下来进入很长的平台期,最后又突然开始下降。报告通过分析参数方向发现,在平台阶段,大量神经元的权重方向趋于一致,也就是说,神经元发生了凝聚。后来,凝聚状态中的参数方向发生分离,逐渐形成不同的神经元群,这叫作分岔(Bifurcation)。当模型恢复了足够的独立表达方向之后,便能够更准确地拟合目标函数,损失也随之下降。
这些问题都在研究参数随时间的运动。例如,对于前面的两层网络,参数演化可以写成:
我们可以把所有神经元的方向看作动力系统中的状态变量。如果存在某种对称结构,那么参数可能先向某个对称集合靠近;而当这个集合的稳定性改变时,轨道就可能沿新的方向分离。
动力学
这一部分比神经元凝聚更进一步。报告研究的是:初始化尺度不同,训练动力学会不会发生本质变化?答案是会,而且不同的渐近尺度可能产生不同的动力学机制。
考虑一个非线性模型 。如果参数变化很小,可以在初始参数 附近作 Taylor 展开:
这一表达式对参数 是线性的。因此,如果训练过程中始终有 ,那么模型就可能一直处于接近初始线性化的状态。
NTK 的全称是神经切线核(Neural Tangent Kernel)。我们从之前的平方损失函数出发:
令 ,并记残差映射的 Jacobian 为 。
梯度流可以写成 。由于 ,代入后得到:
现在定义矩阵 ,于是残差动力学可以写成:
这就是有限训练样本上的神经切线核矩阵。如果训练过程中 ,那么残差动力学就近似为 。
这是一个线性微分方程组。如果核矩阵可以对角化,我们便能够根据它的特征值,分析不同残差方向上的收敛速度。这说明,在某些参数尺度下,复杂神经网络的训练可以近似转化为线性动力系统。
与惰性训练不同,在特征学习显著的区域,参数方向可能发生较大变化。因此, 不再接近初始 Jacobian,对应的核矩阵 也会明显变化。前面讨论的神经元凝聚,就是一类非平凡的特征演化现象。
所以,我们现在得到了两种不同的训练机制。在惰性训练区域,模型主要依靠初始特征的组合来拟合数据;在特征学习区域,模型则通过改变自身的特征表示来完成任务。
