
在探索和理解我们世界的过程中,一个普遍的真理时常显现:简单即是力量。从物理定律到我们大脑中的信号,最关键的信息往往由数量惊人地少的活动组件来传达。这一简约原则(principle of parsimony),即稀疏性(sparsity),已成为现代机器学习和数据科学的基石。它为奥卡姆剃刀(Ockham's razor)提供了数学框架,让我们能够构建不仅具有预测性,而且可解释、高效且富有洞察力的模型。然而,核心挑战在于,在一个充满复杂、高维数据的宇宙中,要识别出这种简单的、潜在的真理是一个极其困难的问题。
本文将探讨稀疏性的全貌,从其优雅的数学基础到其在科学技术领域的变革性影响。我们将首先探索稀疏性的原理与机制,阐明 L1 正则化、凸优化和贝叶斯方法等概念,这些概念将对简单性的棘手搜索转变为一个可解问题。然后,我们将遍览其多样化的应用与跨学科联系,探索这一思想如何被用于选择金融投资组合、修剪庞大的神经网络,甚至自动化地发现物理定律。
在我们理解世界的征程中,无论是解释宇宙的物理学家,还是预测房价的机器学习模型,我们都在不断寻求简单而优雅的解释。最强大的理论往往不是那些涉及所有可能因素的理论,而是那些能分离出少数真正重要因素的理论。这个原则,一种数学上的奥卡姆剃刀,正是稀疏性的核心。
想象一个复杂的生物系统,向其中引入一种药物。可能有数百种代谢物的浓度会发生变化,但其中可能只有三四种变化是药物的直接、显著效应,其余的都只是微小的、下游的连锁反应。一个稀疏的解释会识别出这几个关键的变化。用数学语言来说,我们会将整个代谢变化表示为一个长长的数字向量。一个稀疏向量是指其中大部分数字都为零的向量。非零项才是我们关心的;它们是我们解释中的“活性成分”。
向量中非零元素所在位置的索引集合被称为它的支撑集(support)。稀疏恢复的最终目标就是找到这个支撑集。然而,这是一项极其困难的任务。如果我们有 个可能的因素(即向量的维度),并且我们怀疑其中只有 个是重要的,那么我们需要检查的可能支撑集的数量由二项式系数 给出。对于中等规模的问题,例如,从 20,000 个基因中找出 20 个最重要的基因,这个数字也是天文级别的,远超任何计算机的计算能力。通过暴力搜索寻找最稀疏解在计算上是不可行的,也就是 NP-hard 的。大自然将简单的真理隐藏在组合复杂性的汪洋大海之中。那么,我们该如何找到它呢?
为了找到解决之道,我们首先需要一种度量向量的方法。最熟悉的一种度量向量“大小”或“长度”的方法是 L2 范数,也称为欧几里得距离。如果我们的向量代表系统中的一个变化——比如生物学实验中的代谢物浓度变化——那么 L2 范数给出了在高维可能性空间中,从初始状态到最终状态的直线距离。这就是“乌鸦飞行”的距离。由于其计算公式()中对每个分量进行了平方,L2 范数对大的变化非常敏感。某个代谢物的单一剧烈变化将主导 L2 范数的值。
但如果我们对一个不同的量感兴趣呢?如果我们想知道代谢活动的总量,即把每个变化的幅度加起来,而不论它是增加还是减少,该怎么办?为此,我们需要 L1 范数。它的计算方法很简单,就是将所有分量的绝对值相加:。这通常被称为“曼哈顿距离”,因为它就像在城市网格中测量距离,你只能沿着街区走,而不能直接穿过去。
现在,美妙的技巧出现了。虽然 L0“范数”(非零元素的数量)是稀疏性的真正度量,但它在计算上是噩梦般的。事实证明,L1 范数是一个极好的替代品。为什么呢?原因在于几何学。想象一个二维空间。所有 L2 范数为 1 的向量集合构成一个圆形。所有 L1 范数为 1 的向量集合构成一个菱形,或者说一个旋转了 45 度的正方形。请注意,L1 菱形在坐标轴上具有尖角,而在这些点上,其中一个坐标为零。L2 圆形则是完全光滑的。当我们试图找到一个既能拟合数据又具有小范数的解时,L1 约束比光滑的 L2 约束更有可能将我们引向这些尖锐的、稀疏的角落。这个几何上的特性是解锁稀疏恢复的关键。
面对直接解决 L0 问题的不可行性,我们发展出了两种主要思路。
一种方法是采取“贪心”策略。像正交匹配追踪(Orthogonal Matching Pursuit, OMP)这样的算法会逐步构建稀疏解。在每一步,它们都会问:如果将哪个单一特征加入我们的模型,能够最好地解释数据的剩余部分?它们将该特征添加到支撑集中,更新模型,然后在残差上重复此过程。这是一种直观、实用的策略,通常效果很好,但不能保证找到绝对最优的解。
第二种,也可以说是更具革命性的思路是凸松弛(convex relaxation)。我们用表现良好的凸 L1 范数作为惩罚项,来代替难以处理的非凸 L0“范数”。这导出了著名的优化问题,称为 LASSO(Least Absolute Shrinkage and Selection Operator)或基追踪降噪(Basis Pursuit Denoising, BPDN)。问题就变成了:找到一个向量 ,使其最小化数据失配项和 L1 范数的组合:
在这里,第一项度量了我们的模型 对数据 的拟合程度。第二项由参数 加权,惩罚具有大 L1 范数的解,从而鼓励稀疏性。参数 至关重要;它就像一个旋钮,可以调节所需的稀疏程度,在完美拟合数据和寻找简单解之间进行权衡。这种形式将一个 NP-hard 问题转化为一个凸问题,我们可以高效地求解。这是现代数学和统计学中伟大的“技巧”之一。
然而,解决 LASSO 问题需要一套新的工具。L1 范数有助于找到稀疏解的尖角,也意味着目标函数并非处处可微。具体来说,在任何分量 为零的点,梯度是没有定义的。你在大一微积分中学到的依赖于寻找导数为零点的工具在这里失效了。
解决方案是将梯度推广到次梯度(subgradient)。对于一个光滑函数在某一点上,只有一条切线。而在一个不可微的“扭结”处,则有许多条位于函数下方的线。这些线的斜率集合就是次微分(subdifferential)。对于绝对值函数 在 处,其次微分是整个区间 。通过要求零向量位于我们目标函数的次微分中,我们可以推导出最优性条件(KKT 条件)并设计算法来找到解。
现代的 LASSO 算法通常使用一个称为近端算子(proximal operator)的优雅构件。L1 范数的近端算子解决了一个小型的优化问题:它寻找一个点,这个点是在保持与某个输入向量(来自数据)接近和拥有一个小的 L1 范数之间的一种折衷。该算子具有一种非常简单的形式,称为软阈值(soft-thresholding)。规则简单而直观:对于输入向量的每个分量,如果其绝对值低于阈值 ,则将其设为零。如果高于阈值,则将其向零收缩 的量。这个单一、优雅的操作同时执行了特征选择(通过将小系数设为零)和正则化(通过收缩大系数)。迭代地应用这个软阈值算子是诸如迭代收缩阈值算法(Iterative Shrinkage-Thresholding Algorithm, ISTA)等强大算法的基础。
L1 这顿“免费午餐”确实有其代价:偏差(bias)。因为软阈值算子会将所有非零系数向零收缩,而不仅仅是它保留的那些,所以 LASSO 解在数值上会系统性地偏小,小于真实值。这就是其名称中“收缩”的由来。幸运的是,这种偏差很容易纠正。一旦 LASSO 完成了其选择支撑集(非零特征集)的工作,我们就可以执行一个简单的“去偏”步骤:仅使用所选特征运行标准的最小二乘回归,以获得其幅度的无偏估计。
一个完全不同但同样优美的稀疏性视角来自贝叶斯学派。我们可以不添加惩罚项,而是将对简单性的偏好直接构建到我们的概率模型中。在稀疏贝叶斯学习(Sparse Bayesian Learning, SBL)中,我们使用一种称为自动相关性确定(Automatic Relevance Determination, ARD)的先验。想象一下,我们模型中的每个系数 都有其自己的方差参数 ,你可以把它看作一个“相关性旋钮”。然后,我们让数据本身通过最大化模型的“边际似然”或“证据”来确定每个旋钮的最佳设置。这个证据自然地平衡了数据拟合与模型复杂度。对于一个与解释数据无关的特征,通过将其相关性旋钮 一路调低至零,可以使证据最大化。这优雅地、自动地从模型中“剪除”了无用的特征。
一种更直接的方法是尖峰厚板先验(spike-and-slab prior)。该模型假设每个系数都从两个分布的混合中抽取:一个是精确为零的“尖峰”分布,另一个是用于活动非零系数的“厚板”分布。这种形式在很多方面是稀疏性最真实的概率体现,但它让我们回到了原点,因为在这种先验下寻找最优解(MAP 估计)再次成为一个 NP-hard 的组合问题。
这些原理不仅仅是理论上的奇珍;它们处于现代机器学习的前沿,尤其是在深度神经网络时代。用于图像识别或自然语言处理等任务的大规模模型可能拥有数十亿个参数,这使得它们运行缓慢且成本高昂。稀疏性为提高它们的效率提供了一条途径。
我们可以应用这些思想来剪枝(prune)已训练网络中的连接。非结构化剪枝涉及移除单个权重,从而产生稀疏但可能不规则的模式。而结构化剪枝则移除整组参数,如整个神经元或通道,这通常更有利于硬件加速。
该领域近期最引人入胜的发现或许是彩票假说(Lottery Ticket Hypothesis)。它提出,一个大型、随机初始化的神经网络包含一个更小的、稀疏的子网络——一张“中奖彩票”。如果能识别出这个子网络,并将其从完全相同的初始权重开始单独训练,它能达到与完整的密集网络相当的性能。这意味着深度学习的部分魔力不仅在于学习正确的权重值,还在于从一个幸运的初始化开始,这个初始化已经包含了一个结构良好的稀疏“骨架”。这是一个深刻的思想,它将网络设计的宏大挑战与稀疏性这一基本而优美的原则联系起来:即驱动复杂世界的,是简单的底层结构。
我们已经花了一些时间探索稀疏性的原理和机制,即许多复杂系统内部存在着更简单、更优雅的描述。现在,掌握了“如何做”之后,我们可以踏上一段更激动人心的旅程,去理解“为什么”。为什么这个想法如此重要?事实证明,这一简约原则,即奥卡姆剃刀(Ockham's Razor)的数学体现,并不仅仅是一种学术上的好奇。它是一个强大的透镜,通过它我们可以构建更智能、更高效、更具洞察力的工具来理解我们的世界。这是一个在金融、生物、物理和工程等领域回响的概念,揭示了我们解决问题方式上惊人的一致性。
稀疏性最直接的应用或许是作为一种自动化的发现工具——一种从海量可能性中筛选出少数真正重要因素的方法。想象一下,你正在构建一个模型,用于将医学图像分类为良性或恶性。你可能会为每张图像测量数千种不同的特征:纹理、形状、大小、颜色变化等等。哪些是真正具有预测性的,哪些又仅仅是噪声?
可以构建一个机器学习模型,如支持向量机(Support Vector Machine, SVM),来执行此分类任务。但是,如果我们在其目标函数中加入 惩罚项,奇妙的事情就会发生。正如我们所讨论的, 范数在零点的尖锐“扭结”创造了一种“死区”,在此区域,惩罚项将系数拉向零的力量足以克服来自数据的推力。不重要特征的系数不仅会变小,而且会被驱动为精确地零。该模型实质上执行了自动特征选择。通过检查哪些权重非零,模型在告诉我们:“这些是我发现对该任务最重要的特征。”这不仅给了我们一个预测,还让我们洞察了问题的结构。
这种自动选择的能力在分类之外也产生了切实的后果。以金融界为例,一个指数基金,比如追踪标准普尔500指数(S&P 500)的基金,必须持有该指数中的全部500只股票。但如果你想创建一个更易于管理的投资组合,在不购买每一只股票的情况下近似该指数的表现,该怎么办?这就是指数追踪问题。我们可以将其构建为一个回归问题:我们希望找到一个股票子集的加权组合,其集体回报能够模仿指数回报。通过对股票权重施加 惩罚,我们明确要求一个稀疏解——即一个包含尽可能少股票但仍能准确追踪指数的投资组合。这得益于与我们医学图像分类器中选择特征时所用的相同数学原理,将一个笨重的金融产品转变为一个更简单、更高效的产品。
在当今的计算世界中,复杂性不仅仅是一个学术问题,它还是一个瓶颈。深度学习的惊人成功建立在拥有数亿甚至数十亿参数的模型之上。这些庞然大物虽然强大,但也运行缓慢、耗电且成本高昂。在这里,稀疏性原则再次拯救了我们,不仅是为了可解释性,更是为了纯粹的实用性。
人们普遍观察到,已训练的神经网络中的许多参数非常接近于零;它们的贡献微乎其微。我们可以利用这一点来“剪枝”网络——将这些小权重精确地设为零。这便引入了稀疏性。随着我们增加剪枝率(我们置零的权重比例),我们降低了模型的容量。这被证明是在经典的偏差-方差权衡中导航的有效方法。一个密集的、过参数化的模型可能会过拟合,学习训练数据中的噪声。一个适度剪枝的稀疏模型可以更好地泛化,捕捉真实的信号。当然,如果我们剪枝过于激进,模型会失去其表达能力并开始欠拟合,在所有任务上都表现不佳。将验证误差与稀疏度水平作图,通常会揭示一条典型的“U形”曲线,让我们能够找到一个平衡准确性与效率的最佳点。
但是,使模型稀疏化究竟如何使其变快?答案在于计算图,即定义模型的一系列运算网络。当一个权重为零时,它所代表的连接实际上就消失了。在前向传播(推理)过程中,这就少了一次乘法运算。更微妙的是,在反向传播(训练)过程中,梯度流在被剪掉的路径上被切断了。一个置零权重的梯度永远是零,所以我们不需要计算或存储它。通过使用能够跳过这些零乘法运算的专用硬件和软件库,稀疏模型可以比其对应的密集模型快得多,也更节省内存。
稀疏性还为处理超乎想象的巨大特征空间提供了一个聪明的解决方案。想象一下构建一个语言模型,其特征是互联网上所有的单词和短语。可能特征的数量几乎是无限的。为每个特征创建一个向量来保存计数是不可能的。“特征哈希”(feature hashing)技巧提供了一个优雅的出路。我们使用一个哈希函数将这个庞大、开放的特征集映射到一个固定大小的向量中。由于哈希函数不可避免地会发生冲突(将不同的特征映射到同一个槽位),我们使用第二个哈希函数为每个特征的贡献分配一个随机符号()。这种巧妙的设计确保了在期望上,冲突不会系统性地偏向结果。由此产生的固定大小向量是稀疏的、计算上可管理的,并允许我们对那些大到无法明确枚举的数据流进行学习。
现在我们来到了稀疏性最深刻、最激动人心的作用:作为自动化科学发现的引擎。从天体力学到流体动力学,物理定律通常都非常简单。它们可以由少数几个数学项来表达。宇宙似乎偏爱简约。
假设我们正在观察一个复杂的物理系统,比如流体的流动或波的传播,并且我们想要发现支配它的偏微分方程(Partial Differential Equation, PDE)。一个科学家可能需要花费数年时间来假设和检验方程的不同形式。但如果我们能将此过程自动化呢?我们可以从构建一个包含所有可能出现在方程中的合理候选项的大型“库”开始:, , , , 等等。然后,我们可以测量系统的时间演化,并建立一个回归问题来找到这些库中每一项的系数。通过对系数施加稀疏性约束,我们将我们的物理直觉——即真正的定律是简单的——直接嵌入到优化过程中。算法随后会筛选数百个候选项,并找到少数系数非零的项。通过这样做,它直接从数据中“发现”了底层偏微分方程的结构。这是科学方法上的一次范式转变,机器学习和稀疏性在此携手合作,揭示自然的法则。
通过编码更详细的先验知识,这个原理可以被进一步完善。有时,我们寻求的简单性具有特定的结构。例如,在地球物理学中,我们可能寻找地下的异常体,如油藏或地质断层。我们期望这些异常是空间上聚集的,而不是像单个像素一样随机散布。标准的 稀疏性惩罚每个系数,这并不完全适用。相反,我们可以使用*组稀疏性(group sparsity)。我们首先将变量(例如,三维网格中的体素)划分为代表合理空间集群的组。然后,我们施加一个惩罚项,比如组 LASSO(Group LASSO),它鼓励整个组*的系数要么全部为零,要么一起非零。这是一个将稀疏性的一般原则与特定领域知识相结合的优美范例,从而带来更具物理意义的发现。
更进一步,如果我们甚至不知道我们问题的正确“构件”或“字典原子”呢?在 PDE 的例子中,我们构建了一个多项式项的库,但对于其他信号,如自然图像或声音,最佳基底并不明显。这里,*稀疏编码和字典学习*的思想就派上用场了。其假设是,一个信号可以表示为从数据本身学习到的字典中少数原子的稀疏组合。该算法同时学习字典 和稀疏编码 ,以最好地重建数据 。值得注意的是,当这种方法应用于自然图像的图块时,学到的字典原子类似于大脑初级视觉皮层(V1)中神经元的感受野。似乎大自然本身也采用了一种稀疏编码来高效地表示视觉世界。
稀疏性的影响不仅限于构建模型,它改变了我们看待和与数据互动的方式。思考一下图像去噪。一张照片被随机噪声污染了。我们如何去除它?Tikhonov()方法会平滑所有东西,将清晰的边缘连同噪声一起模糊掉。一种更好的方法,全变分(Total Variation, TV)去噪,认识到自然图像是“梯度稀疏的”——它们大部分是平滑的,只有在边缘处才有突变。通过对图像的梯度施加 惩罚,我们鼓励一个分段常数解。这有力地去除了平坦区域的噪声,同时保留了定义图像内容的清晰边缘。
问题领域的稀疏性质甚至可以决定我们应该如何衡量成功。在系统生物学中,我们试图推断基因调控网络。在数百万种可能的基因间相互作用中,只有极小一部分是真实的。真实情况是极其稀疏的。如果我们构建一个分类器来预测这些相互作用,我们将面临严重的类别不平衡问题。像准确率(accuracy)甚至 AUROC 这样的朴素指标可能会产生误导性的高分,因为一个简单地预测“无相互作用”的模型在 99.9% 以上的情况下都是正确的!我们需要一个更敏感的指标,比如精确率-召回率曲线下面积(Area Under the Precision-Recall curve, AUPR)。AUPR 关注于在找到真阳性(召回率)和不被假阳性淹没(精确率)之间的权衡,这正是在大海捞针时所关心的。
最后,稀疏性原则甚至可以帮助我们改进科学计算的基本工具。求解大型线性方程组是科学和工程领域无数模拟计算的核心,通常使用预处理器来加速。我们可以使用机器学习来为一类特定的问题学习一个最优的稀疏预处理器。稀疏性是一个关键约束,确保预处理器存储和应用成本低廉,从而提供实际的加速效果。这是一个优美的、自引用的循环:我们使用稀疏机器学习来为科学构建更好、更快的工具,而这些工具反过来又为我们生成更多可供学习的数据。
我们的旅程从挑选股票、剪枝神经网络,到发现物理定律、建模人类大脑。自始至终,稀疏性原则都是我们不变的向导。它证明了一个事实,即在科学中,如同在艺术中一样,简单性蕴含着深刻的美与力量。通过为奥卡姆剃刀提供一个数学框架,稀疏性给了我们一个普适的视角,用以在令人眼花缭乱的世界复杂性中,发现那些有意义的、优雅的隐藏结构。