
由于神经网络存在几乎无限种可能的配置,设计其最优架构是一项巨大的挑战。传统设计依赖于专家的直觉和反复试验,而像梯度下降这样的标准优化工具与离散的架构选择不兼容。本文旨在通过揭示可微分架构搜索(Differentiable Architecture Search, DAS)的奥秘来弥补这一差距。DAS 是一种革命性的方法,它将架构设计重构为一个连续且可微的优化问题。您将学习到这项强大技术背后的核心概念,从而能够自动发现高性能且高效的神经网络。“原理与机制”一章将阐述 DAS 如何通过创建平滑的搜索空间、利用超网络以及使用双层优化来工作。随后,“应用与跨学科联系”一章将探讨其在现实世界中的影响,从自动化的硬件感知工程到其与优化和信息论的深刻联系。
想象一下,你是一位建筑师,任务是设计出既高效又美观的摩天大楼。你有一份组件目录:不同类型的房间、窗户、支撑梁和电梯。可能组合的数量是天文数字。你将如何找到唯一最佳的设计?你无法承担建造数百万个原型的成本。这正是设计神经网络时面临的困境。网络的“架构”——其层、连接和操作——就是一张蓝图,而找到最优蓝图是一项艰巨的任务。
可微分架构搜索(DAS)为摆脱这一困境提供了一种极为巧妙的方法。它不再将架构设计视为一系列硬性的离散选择,而是将问题转化为一个平滑、连续的景观,我们可以用强大的微积分工具来探索。让我们一起走过这段发现之旅。
深度学习的主力是梯度下降,这是一种在损失景观上“滚下山”以找到使网络性能最佳的权重的算法。问题在于,这只在景观平滑时才有效。你无法对一个离散选择(比如“我应该使用操作A还是操作B?”)求导。这就像问一个楼梯的斜率是多少;没有唯一的答案。
DAS 的核心洞见在于将这些“楼梯”溶解为平滑的斜坡。我们不再强制在不同操作之间做选择,而是创造一种新的混合操作,它是所有操作的混合体。
考虑网络单元中的一个简单选择:我们应该使用最大池化(从输入的一个区域中取最大值)还是平均池化(对所有值求平均)?我们可以定义一个新的“混合”操作,作为一个加权和,而不是二选一:
在这里,权重 和 不是固定的;它们是介于 0 和 1 之间且总和为 1 的连续值。它们就像一个“混合阀”。如果 ,我们得到纯粹的最大池化。如果 ,我们得到纯粹的平均池化。如果两者都为 ,我们得到两者的均等混合。这些权重由一个单一的、底层的架构参数控制,我们称之为 。我们可以使用像 softmax 或 sigmoid 这样的函数将 映射到我们的权重。例如,使用 sigmoid 门 ,混合操作可以是:
突然之间,架构选择不再是离散的。它由连续参数 控制。我们现在可以问:“如果我轻微调整 ,我的网络最终性能会如何变化?”这是一个微积分可以回答的问题!我们成功地为架构本身创建了一个可微的控制手柄。
现在,让我们将这个想法扩展。在现代神经网络中,不仅仅只有两种选择;在网络的每一点上都有几十种可能的操作(不同大小的卷积、自注意力、跳跃连接等)。通过在各处应用我们的混合原则,我们构建了一个宏伟的、过度参数化的对象,称为超网络(super-network)。
这个超网络是一个计算巨兽,它包含了我们感兴趣的每一个候选架构,所有这些架构都层叠在一起。在每一个需要做出选择的地方,都存在所有可能操作的混合体,每个操作都有其自身的架构权重。搜索空间不再是一组离散的蓝图,而是一个单一的、巨大的、可微的图。
当然,这也带来了一些实际挑战。如果一个候选操作(比如卷积)产生 16 个通道的输出,而另一个产生 32 个通道的输出,该怎么办?你不能简单地相加或混合不同形状的张量。事实证明,解决方案非常优雅。我们为每个操作引入一个简单的、可学习的“适配器”,通常是一个轻量级的 卷积,其任务是将每个候选操作的输出投影到一个共同的最大通道维度。这确保了所有输出在混合之前是兼容的,从而使加权和能够被明确定义。这是一个虽小但至关重要的工程设计,它使整个大厦得以屹立。
因此,我们有了超网络,它有两组参数:执行实际计算的常规网络权重 (),以及控制操作混合的架构参数 ()。我们如何同时优化它们呢?
我们不能简单地将它们全部扔进一个大的优化问题中。一个架构 () 的优劣只有在它对应的权重 () 被妥善训练后才有意义。这就产生了一种称为双层优化(bilevel optimization)的嵌套优化结构。这是一个双层博弈:
内循环(权重训练): 对于一个固定的架构(一组固定的 值),我们在训练数据集上训练网络的权重 。我们进行几步梯度下降,以使网络在该特定架构下尽可能好。
外循环(架构更新): 然后,我们用这个部分训练过的网络,在一个独立的、未见过的验证数据集上评估其性能。这个验证性能是衡量架构质量的真实标准。然后,我们计算这个验证损失相对于架构参数 的梯度。这个梯度告诉我们如何调整混合权重以创造一个更好的架构。
这个过程的数学核心是双层梯度。当我们计算 的梯度时,我们必须考虑到,改变 不仅直接改变了操作,还间接改变了内部权重训练循环的结果。本质上,梯度必须“看穿”训练步骤,这是链式法则的巧妙应用。通过在这两个循环之间交替进行,我们同时训练网络权重并将架构本身引向最优配置。
搜索过程结束后,我们得到一个优化后的超网络,其中架构参数 指示了操作的最佳混合方式。但是为了部署,我们需要一个单一、高效、离散的网络。我们如何从这种连续的混合体中提炼出我们的最终蓝图呢?
一个简单的方法是只看最终的混合权重。对于网络中的每个选择点,我们选择在搜索过程中被赋予最高权重的操作。这就像举行一场选举,最受欢迎的候选人获胜。
一种更复杂的方法是从一开始就引导搜索过程偏好离散的结果。这里通常使用两个绝妙的想法:
稀疏性压力: 我们可以在优化目标中增加一个惩罚项,奖励模型使用更少的操作。一个常见的选择是 惩罚,它对混合权重的绝对值求和。这鼓励优化器将大部分权重驱动到恰好为零,从而有效地“修剪”掉无用的操作,并迫使模型将其预算集中在一小部分强大的候选操作上。这是一种告诉系统:“要果断!”的方式。
温度退火: 另一个强大的技术是在计算混合权重的 softmax 或 sigmoid 函数中引入一个“温度”参数 ,例如 。当温度高时,权重是“软”的且分散的,允许模型探索多种选项的平滑混合。当我们缓慢降低温度——这个过程称为退火(annealing)——概率会变得更尖锐、更“峰值化”,迫使系统向一个主导选择靠拢。这个过程类似于冷却熔融的金属:随着温度降低,原子会稳定下来,形成晶体结构。同样,我们的架构也从一个流动的混合体凝结成最终的离散形式。
这种可微分方法无疑是强大的,但它并非没有微妙之处和陷阱。搜索过程中的平滑、连续的世界并不总能完美地反映最终架构的离散现实。
一个已知的问题是离散化差距(discretization gap)。优化后的超网络得益于操作的平滑混合,可能会达到一个很高的性能,但最终的离散化网络却无法复制。优化器可能通过以一种一旦做出单一选择后便不可能的方式组合操作,从而找到了一个“捷径”。
一个更著名且更戏剧性的失败模式是退化(degeneracy)。某些操作,比如跳跃连接(skip connection,它只是简单地将其输入原样传递),对于优化器来说非常“容易”使用。它们需要很少的资源,并提供一条直接、清晰的梯度路径。在某些情况下,基于梯度的搜索会变得“懒惰”,对这些简单的跳跃连接产生压倒性的偏好。结果是最终的架构基本上是空的走廊,几乎不进行任何计算,性能也很差。这一发现促使了对搜索进行约束的进一步研究,例如通过强制任何有效的架构路径必须包含最少数量的非跳跃、具有计算意义的操作。
这些挑战并没有否定这种方法;相反,它们凸显了从一个复杂的、连续的搜索空间到一个简单、离散且高性能的最终模型的旅程是一个丰富且仍在进行的科学探索领域。DAS 的原理代表了视角的深刻转变,将架构设计的艺术转变为一门可微分优化的科学。
既然我们已经掌握了可微分架构搜索的核心原理——那个将离散的、硬性的选择松弛为一个我们可以用微积分来导航的连续、平滑景观的巧妙技巧——我们就可以提出任何新工具最重要的问题:它有什么用?事实证明,答案非常广泛。我们发现,这个单一的想法不仅仅是学术上的好奇心,更是一个用于实际工程的强大引擎,一个用于平衡复杂权衡的精密工具,甚至是一面反映科学发现本质的镜子。让我们踏上这段应用的旅程,从具体到深刻。
从本质上讲,设计神经网络是一种工程行为。我们必须选择正确的组件并将它们组装起来以执行任务,同时还要遵守成本、速度和能耗的预算。从历史上看,这是一个由经验和直觉指导的、艰苦的手动过程。可微分架构搜索(DAS)以一位大师级工匠的身份进入这个领域,能够用数学的精确性来自动化这些决策。
想象一下,你正在构建一个卷积神经网络,一个用于观察模式的数字眼睛。对于每一层,你都必须选择一个“镜头”,即一个特定尺寸的卷积核。小卷积核可能速度快,能看到精细的细节,而大卷积核可能速度慢,但更擅长把握更广阔的背景。哪个是正确的选择?第一层的正确选择对最后一层仍然适用吗?在像 GoogLeNet 这样复杂的架构中,有几十个这样的选择,问题变成了一个令人眼花缭乱的组合谜题。DAS 提供了一个优雅的解决方案。我们不再强制做出单一选择,而是允许每个潜在的卷积核尺寸提供其“意见”,并使用 softmax 函数来创建一个加权共识。然后,目标函数不仅引导优化朝向准确性,还朝向一个理想的属性,例如惩罚计算成本高的大卷积核。其结果是一个能够为每个任务自动发现正确工具的系统,为网络中的每一个组件平衡性能与成本。
这一原则可以很好地扩展到更复杂的场景。现实世界的工程很少只涉及单一的权衡;它关乎于处理一整套约束条件。考虑设计一个完整的网络蓝图的任务——不仅是卷积核的大小,还有它的总深度(多少层?)和每个阶段的宽度(多少通道?)。此外,想象一下你对最终网络允许执行的总计算量,即浮点运算次数(FLOPs),有一个严格的“预算”。这对于在智能手机等功耗有限的设备上部署模型来说是一个常见要求。
在这里,DAS 展示了其卓越的灵活性。我们可以引入可微分的“门”,来学习是包含还是绕过一个层块,从而有效地学习最优深度。同时,我们可以使用我们的 softmax 技巧来学习每个阶段的最优宽度。最巧妙的是,我们可以将总 FLOPs 数量本身表述为这些架构选择的可微分函数。这使我们能够将预算直接包含在我们的损失函数中——例如,通过添加一个像 这样的惩罚项,其中 是我们混合架构的预期 FLOPs。这个惩罚项就像一笔透支费;如果我们在预算内,它什么也不做,但如果我们超出预算,它就会急剧增长,迫使优化器找到一个尊重约束的解决方案。在一个统一的过程中,DAS 设计了一个具有适当深度和宽度且满足不可协商的计算预算的网络。
当我们将抽象的计算模型与物理世界联系起来时,这种工程应用的巅峰就到来了。像 FLOPs 这样的代理指标很有用,但它们并不能捕捉到性能的全貌。网络的真实速度取决于它运行的具体硬件——特定 GPU 的内存访问模式、手机 CPU 的指令集等等。我们能教会我们的搜索算法关于我们特定设备的物理特性吗?
有了 DAS,答案是响亮的“是”。在一个被称为“硬件在环”搜索的策略中,我们可以在目标硬件上预先测量每个可能的架构选择的实际延迟。这些测量数据构成一个简单的查找表。然后,我们将这个测量的延迟直接整合到我们的目标函数中,通常作为与准确性损失的加权和:。超参数 成为工程师的一个调节旋钮。一个小的 会告诉搜索优先考虑准确性,即使它很慢。一个大的 则要求尽可能快的网络,即使以牺牲少量准确性为代价。通过转动这个单一的旋钮,工程师可以自动生成一整个系列的优化网络,每个网络都为其特定硬件的准确性-速度谱上的不同点量身定制。
DAS 的力量超越了实际的自动化。它触及并提供了一个框架,用于解决优化理论、信息论和科学方法交叉点上的更深层次问题。
到目前为止,我们通过一个简单的加权因子将多个目标(如准确性和延迟)组合成一个单一的损失函数来处理。但是当两个目标存在根本冲突时会发生什么?想象一个场景,在架构空间中,最能提高准确性的方向(由梯度 给出)与使训练过程更稳定的方向(由 给出)相反。对这些梯度进行简单的求和可能会相互抵消,导致进展缓慢或停滞。
在这里,我们可以从简单的工程转向更具外科手术式的方法,将 DAS 与多目标优化领域联系起来。我们可以分析这两个梯度向量之间的关系,例如通过计算它们之间夹角的余弦值。负值表示冲突。当冲突发生时,我们可以执行“梯度手术”:我们可以将一个梯度分解为与另一个梯度平行和正交的分量,并简单地移除冲突的平行分量。这使我们能够以一种追求一个目标而不会主动损害另一个目标的方式来更新我们的架构。这是一种在复杂的权衡景观中进行导航的更复杂的方法,是解决相互竞争目标之间拉锯战的外交解决方案。
然而,也许最深刻的联系来自于对整个搜索过程的重新构建。当我们评估一个架构时,我们到底在做什么?我们正在进行一次实验。鉴于这些实验可能极其昂贵,需要数小时或数天的计算,我们应该如何选择接下来要运行哪一个?蛮力或随机的方法就像一个科学家随机混合化学物质,希望能偶然发现一个新发现。一种更智能的方法是设计信息量最大的实验。
这就是贝叶斯优化实验设计(Bayesian Optimal Experimental Design, BOED)的核心思想,它为我们看待架构搜索提供了一个绝佳的视角。我们可以从一个关于所有可能模型空间的“信念”(由概率分布表示)开始。我们每一步的目标是选择那个预期能最大程度减少我们不确定性的实验(即,评估那个架构)。这种不确定性的减少通过直接从信息论中借来的信息增益(information gain)概念来量化。我们对每个候选架构提问:“如果我测试你,平均而言,我能对问题的真实性质了解多少?我的无知会减少多少?”然后我们选择那个有望带来最大知识飞跃的架构。
通过采纳这种视角,架构搜索发生了转变。它不再仅仅是寻找一个单一的高性能模型。它变成了一个有原则的、基于信息论的探究过程,一个闭环,其中每一步都是构建知识的最有效的一步。搜索变成了一个自动化的科学家,带着好奇心和严谨性探索一个巨大的假设空间,并由信息的基本法则引导。
从一个在预算下精心挑选零件的自动化工程师,到一个解决冲突目标的明智谈判者,再到一个进行信息量最大化实验的自动化科学家,可微分架构搜索的应用揭示了一个具有非凡深度的工具。它证明了一个单一、优雅的数学思想如何能够向外扩散,在解决现实世界实际问题的同时,也与优化和科学探究的一些最深刻原理相联系。