神经网络架构搜索技术全面详解
神经架构搜索的本质与意义
神经网络架构搜索(Neural Architecture Search, NAS)代表了深度学习领域的一次重要范式转变。传统的神经网络设计依赖于研究人员的经验和直觉,需要大量的试错过程,而NAS通过算法自动化地发现适合特定任务的最优网络结构。这项技术的核心目标是将人工智能应用于人工智能本身的设计过程,从而实现真正的自动化机器学习。在深入技术细节之前,我们需要理解NAS解决的根本问题。设计一个高性能的神经网络架构需要回答诸多问题:网络应该有多少层?每层应该使用什么类型的操作?层与层之间如何连接?这些决策的组合空间是巨大的——一个典型的10层网络可能有超过10^10种候选架构。人类专家通过经验和直觉在这个庞大的空间中导航,但这种方法既低效又容易陷入局部最优。NAS提供了一种系统化的方法来探索这个空间,并且已经在多个任务上发现了超越人类设计的架构。
从手动设计到自动搜索的演进历程
神经网络架构设计的历史可以追溯到深度学习的早期。从LeNet到AlexNet,从VGGNet到ResNet,每一次架构创新都推动了整个领域的发展。然而,这些突破都依赖于研究人员的灵感和大量的实验验证。随着深度学习应用领域的扩展,为每个新任务手动设计专门的架构变得越来越不可行。2016年11月,Google Brain的Zoph和Le发表了开创性的论文《Neural Architecture Search with Reinforcement Learning》,首次提出使用强化学习进行架构搜索。他们的方法在CIFAR-10数据集上达到了3.65%的错误率,超越了当时最好的人类设计架构。这个结果震撼了整个学术界,但其计算成本同样惊人——需要22,400个GPU小时,相当于800个GPU运行28天。随后的发展主要集中在提高搜索效率上。2018年,DARTS(Differentiable Architecture Search)的出现是一个重要里程碑。通过将离散的架构选择问题转化为连续的优化问题,DARTS将搜索时间从数千GPU天降低到仅需2-3个GPU天,使得NAS技术变得更加实用。同时期,ENAS(Efficient NAS)通过权重共享机制实现了1000倍的加速,进一步推动了这一领域的发展。
NAS的三维框架体系
理解NAS的工作原理需要从三个维度入手:搜索空间(Search Space)、搜索策略(Search Strategy)和性能评估策略(Performance Estimation Strategy)。这三个组件相互作用,共同决定了NAS系统的效率和效果。搜索空间定义了NAS算法可以探索的所有可能架构。最简单的搜索空间是链式结构,其中每一层的输出作为下一层的输入。更复杂的搜索空间包括多分支网络、跳跃连接和基于单元(cell)的重复结构。搜索空间的设计需要平衡表达能力和搜索效率——过于受限的空间可能错过最优解,而过于灵活的空间会使搜索变得困难。搜索策略决定了如何在搜索空间中导航。早期的方法主要使用强化学习和进化算法,这些方法能够处理离散的架构决策,但计算成本较高。基于梯度的方法通过连续松弛实现了更高效的搜索,但可能陷入局部最优。最新的研究还探索了贝叶斯优化、预测器引导搜索等策略。性能评估是NAS中最耗时的部分。最直接的方法是完全训练每个候选架构并评估其在验证集上的性能,但这种方法的计算成本令人望而却步。
基于强化学习的NAS方法详解
强化学习方法将架构搜索建模为一个序列决策问题。在这个框架中,一个控制器(通常是RNN)扮演智能体的角色,通过采样动作序列来生成网络架构。每个架构的验证精度作为奖励信号,用于更新控制器的参数。
数学建模与REINFORCE算法
在强化学习框架下,NAS的目标是最大化期望奖励:
J ( θ ) = E τ ∼ P ( ⋅ ; θ ) [ R ( τ ) ] J(\theta) = \mathbb{E}_{\tau \sim P(\cdot; \theta)}[R(\tau)] J(θ)=Eτ∼P(⋅;θ)[R(τ)]
其中 τ \tau τ表示一个完整的架构描述序列, θ \theta θ是控制器参数, R ( τ ) R(\tau) R(τ)是架构的奖励(通常是验证准确率)。
控制器使用LSTM网络,在每个时间步生成架构决策的概率分布:
p ( a t ∣ a 1 : t − 1 ) = softmax ( W o h t + b o ) p(a_t | a_{1:t-1}) = \text{softmax}(W_o h_t + b_o) p(at∣a1:t−1)=softmax(Woht+bo)
其中 h t h_t ht是LSTM的隐状态,通过递归更新获得:
h t = LSTM ( h t − 1 , a t − 1 ; θ ) h_t = \text{LSTM}(h_{t-1}, a_{t-1}; \theta) ht=LSTM(ht−1,at−1;θ)
根据策略梯度定理,目标函数的梯度可以表示为:
∇ θ J ( θ ) = E τ ∼ P ( ⋅ ; θ ) [ R ( τ ) ∇ θ log P ( τ ; θ ) ] \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim P(\cdot; \theta)}[R(\tau) \nabla_\theta \log P(\tau; \theta)] ∇θJ(θ)=Eτ∼P(⋅;θ)[R(τ)∇θlogP(τ;θ)]
这个期望通过蒙特卡洛采样来估计。为了减少梯度估计的方差,通常引入基线函数 b b b:
∇ θ J ( θ ) = E τ ∼ P ( ⋅ ; θ ) [ ( R ( τ ) − b ) ∇ θ log P ( τ ; θ ) ] \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim P(\cdot; \theta)}[(R(\tau) - b) \nabla_\theta \log P(\tau; \theta)] ∇θJ(θ)=Eτ∼P(⋅;θ)[(R(τ)−b)∇θlogP(τ;θ)]
基线函数可以是奖励的移动平均,也可以是更复杂的价值函数估计。
NASNet的架构搜索空间
NASNet引入了基于单元(cell)的搜索空间,这是一个重要的创新。与其搜索整个网络架构,NASNet只搜索两种类型的单元:Normal Cell(保持特征图尺寸)和Reduction Cell(将特征图尺寸减半)。完整的网络通过堆叠这些单元构建。每个单元包含B个块(通常B=5),每个块的构建需要5个预测步骤:选择两个输入、两个操作和一个组合方式。这种设计大大减少了搜索空间,同时保持了足够的表达能力。更重要的是,在小数据集上搜索到的单元可以迁移到大数据集,这使得在CIFAR-10上搜索、在ImageNet上评估成为可能。
ENAS的参数共享机制
ENAS(Efficient Neural Architecture Search)通过参数共享显著提高了搜索效率。核心思想是将所有可能的架构视为一个超图的子图,所有子模型共享超图的参数。这样,训练一个架构实际上是在训练超图的一部分,其他架构可以重用这些参数。
ENAS采用双层优化策略。在外层,使用REINFORCE算法更新控制器参数:
θ ← θ + α ∇ θ J ( θ ) \theta \leftarrow \theta + \alpha \nabla_\theta J(\theta) θ←θ+α∇θJ(θ)
在内层,固定架构并更新共享权重:
ω ← ω − β ∇ ω L train ( ω , m ) \omega \leftarrow \omega - \beta \nabla_\omega \mathcal{L}_{\text{train}}(\omega, m) ω←ω−β∇ωLtrain(ω,m)
其中 m m m是采样的架构, L train \mathcal{L}_{\text{train}} Ltrain是训练损失。这种交替优化使得搜索效率提高了1000倍。
基于梯度的可微分架构搜索
DARTS的出现标志着NAS方法的重大突破。通过将离散的架构选择连续化,DARTS使得我们可以使用标准的梯度下降方法来优化架构参数,极大地提高了搜索效率。
连续松弛的数学原理
DARTS的核心创新是混合操作(mixed operation)的概念。对于节点 i i i和 j j j之间的连接,不是选择单一操作,而是所有候选操作的加权组合:
o ˉ ( i , j ) ( x ) = ∑ o ∈ O exp ( α o ( i , j ) ) ∑ o ′ ∈ O exp ( α o ′ ( i , j ) ) o ( x ) \bar{o}^{(i,j)}(x) = \sum_{o \in \mathcal{O}} \frac{\exp(\alpha_o^{(i,j)})}{\sum_{o' \in \mathcal{O}} \exp(\alpha_{o'}^{(i,j)})} o(x) oˉ(i,j)(x)=o∈O∑∑o′∈Oexp(αo′(i,j))exp(αo(i,j))o(x)
这里 α ( i , j ) \alpha^{(i,j)} α(i,j)是可学习的架构参数,softmax函数确保权重和为1。当温度参数趋近于0时,这个连续分布会逼近one-hot分布,从而恢复离散选择。
双层优化问题
DARTS将架构搜索表述为双层优化问题:
min α L val ( w ∗ ( α ) , α ) s.t. w ∗ ( α ) = arg min w L train ( w , α ) \begin{aligned} \min_\alpha & \quad \mathcal{L}_{\text{val}}(w^*(\alpha), \alpha) \\ \text{s.t.} & \quad w^*(\alpha) = \arg\min_w \mathcal{L}_{\text{train}}(w, \alpha) \end{aligned} αmins.t.Lval(w∗(α),α)w∗(α)=argwminLtrain(w,α)
上层问题优化架构参数 α \alpha α以最小化验证损失,下层问题给定架构找到最优权重。这个双层结构确保了架构的泛化能力。
架构参数的梯度通过链式法则计算:
∇ α L val ( w ∗ ( α ) , α ) = ∇ α L val − λ ∇ α ∇ w L train \nabla_\alpha \mathcal{L}_{\text{val}}(w^*(\alpha), \alpha) = \nabla_\alpha \mathcal{L}_{\text{val}} - \lambda \nabla_\alpha \nabla_w \mathcal{L}_{\text{train}} ∇αLval(w∗(α),α)=∇αLval−λ∇α∇wLtrain
其中第二项涉及二阶导数。DARTS提供了一阶近似(忽略二阶项)和二阶近似(使用有限差分)两种选择。实践中,二阶近似通常能获得更好的结果,计算成本的增加是可以接受的。
DARTS的改进与变体
原始DARTS存在一些问题,如跳跃连接占主导地位、离散化后性能下降等。研究人员提出了多种改进方法。
PC-DARTS(Partially-Connected DARTS)通过部分通道连接减少内存消耗。在计算混合操作时,只使用输入的1/K个通道,但在反向传播时梯度仍然传递到所有架构参数。这种方法允许使用更大的批量大小,提高了搜索的稳定性。
Fair DARTS解决了操作之间不公平竞争的问题。传统的softmax函数创造了一个"赢者通吃"的环境,Fair DARTS使用sigmoid函数独立地评估每个操作:
o ˉ ( i , j ) ( x ) = ∑ o ∈ O σ ( α o ( i , j ) ) ⋅ o ( x ) \bar{o}^{(i,j)}(x) = \sum_{o \in \mathcal{O}} \sigma(\alpha_o^{(i,j)}) \cdot o(x) oˉ(i,j)(x)=o∈O∑σ(αo(i,j))⋅o(x)
这种方法允许多个操作同时被选择,更好地探索架构空间。
GDAS(Gradient-based Differentiable Architecture Sampling)引入了Gumbel-Softmax技巧,在前向传播时只激活一个操作,但保持可微性。这进一步减少了内存使用和计算成本。
进化算法与其他搜索策略
进化算法提供了另一种探索架构空间的方法。与强化学习不同,进化算法维护一个架构种群,通过变异、交叉和选择操作逐步改进。
AmoebaNet与正则化进化
AmoebaNet使用正则化进化算法,其关键创新是引入"年龄"概念。传统的进化算法可能陷入局部最优,因为表现好的个体会长期占据种群。正则化进化通过优先保留年轻个体来增加多样性:
selection_probability ∝ exp ( − α × age ) \text{selection\_probability} \propto \exp(-\alpha \times \text{age}) selection_probability∝exp(−α×age)
变异操作包括添加/删除层、修改连接、改变操作类型等。这些操作保持架构的有效性,同时探索新的设计。实验表明,这种方法在ImageNet上达到了83.9%的top-1准确率,超越了同期的其他方法。
超网络与一次性方法
超网络(Supernet)方法是另一个重要方向。核心思想是训练一个包含所有可能子架构的大网络,然后通过某种策略选择最优子网络。这避免了从头训练每个架构的需要。
数学上,超网络可以表示为:
SuperNet ( x , α ) = ∑ i α i × operation i ( x ) \text{SuperNet}(x, \alpha) = \sum_i \alpha_i \times \text{operation}_i(x) SuperNet(x,α)=i∑αi×operationi(x)
其中 α \alpha α控制哪些路径被激活。训练时,随机采样不同的子网络,使得权重能够适应多种架构。搜索时,可以快速评估不同架构的性能。
零样本架构搜索
最近的研究探索了无需训练的架构评估方法。这些方法设计代理指标来预测架构的性能,完全避免了训练过程。
Zen-Score基于神经正切核理论,通过计算高斯复杂度来评估网络的表达能力:
Zen-Score ( A ) = log ∣ det ( K ntk ) ∣ \text{Zen-Score}(A) = \log|\det(K_{\text{ntk}})| Zen-Score(A)=log∣det(Kntk)∣
其中 K ntk K_{\text{ntk}} Kntk是神经正切核矩阵。其他指标如NASWOT(基于雅可比矩阵条件数)、Synflow(基于权重的迭代修剪)等,从不同角度评估架构的潜力。
这些方法将搜索时间进一步降低到小时级别,使得大规模架构探索成为可能。虽然预测精度还不能完全替代实际训练,但作为初步筛选工具已经展现出巨大价值。
数学原理的深入剖析
理解NAS的数学基础对于把握其本质至关重要。这里我们深入探讨几个核心数学概念。
策略梯度与方差减少
强化学习方法的核心是策略梯度定理。对于随机策略 π θ \pi_\theta πθ,目标函数的梯度可以写成:
∇ θ J ( θ ) = E τ ∼ π θ [ G ( τ ) ∇ θ log π θ ( τ ) ] \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}[G(\tau) \nabla_\theta \log \pi_\theta(\tau)] ∇θJ(θ)=Eτ∼πθ[G(τ)∇θlogπθ(τ)]
其中 G ( τ ) G(\tau) G(τ)是轨迹 τ \tau τ的累积奖励。这个估计器是无偏的,但方差很大。引入基线函数 b b b不会改变期望,但可以显著减少方差:
Var [ G − b ] = Var [ G ] − 2 Cov [ G , b ] + Var [ b ] \text{Var}[G - b] = \text{Var}[G] - 2\text{Cov}[G, b] + \text{Var}[b] Var[G−b]=Var[G]−2Cov[G,b]+Var[b]
最优基线是:
b ∗ = E [ G ∇ log π ⋅ ∇ log π ] E [ ∇ log π ⋅ ∇ log π ] b^* = \frac{\mathbb{E}[G \nabla \log \pi \cdot \nabla \log \pi]}{\mathbb{E}[\nabla \log \pi \cdot \nabla \log \pi]} b∗=E[∇logπ⋅∇logπ]E[G∇logπ⋅∇logπ]
实践中,通常使用移动平均或学习一个价值函数作为基线。
双层优化的理论分析
DARTS的双层优化问题在理论上具有挑战性。考虑简化情况,假设下层问题是强凸的,最优解 w ∗ ( α ) w^*(\alpha) w∗(α)关于 α \alpha α的导数可以通过隐函数定理计算:
∂ w ∗ ∂ α = − [ ∇ w 2 L train ] − 1 ∇ w , α 2 L train \frac{\partial w^*}{\partial \alpha} = -[\nabla_w^2 \mathcal{L}_{\text{train}}]^{-1} \nabla_{w,\alpha}^2 \mathcal{L}_{\text{train}} ∂α∂w∗=−[∇w2Ltrain]−1∇w,α2Ltrain
这涉及Hessian矩阵的逆,计算成本为 O ( ∣ w ∣ 3 ) O(|w|^3) O(∣w∣3)。DARTS的有限差分近似:
∂ w ∗ ∂ α ≈ w + − w − 2 ϵ \frac{\partial w^*}{\partial \alpha} \approx \frac{w^+ - w^-}{2\epsilon} ∂α∂w∗≈2ϵw+−w−
其中 w ± = w ∓ ϵ ∇ w L train w^{\pm} = w \mp \epsilon \nabla_w \mathcal{L}_{\text{train}} w±=w∓ϵ∇wLtrain,将复杂度降低到 O ( ∣ w ∣ ) O(|w|) O(∣w∣)。
这种近似的误差分析表明,当 ϵ \epsilon ϵ选择适当时,近似误差为 O ( ϵ 2 ) O(\epsilon^2) O(ϵ2)。实践中, ϵ = 0.01 / ∣ ∣ ∇ w L train ∣ ∣ 2 \epsilon = 0.01 / ||\nabla_w \mathcal{L}_{\text{train}}||_2 ϵ=0.01/∣∣∇wLtrain∣∣2通常效果良好。
Gumbel-Softmax的概率论基础
Gumbel-Softmax提供了一种可微的离散采样方法。其基础是Gumbel-Max技巧:如果 G i ∼ Gumbel ( 0 , 1 ) G_i \sim \text{Gumbel}(0, 1) Gi∼Gumbel(0,1)独立同分布,那么:
arg max i ( log π i + G i ) ∼ Categorical ( π ) \arg\max_i (\log \pi_i + G_i) \sim \text{Categorical}(\pi) argimax(logπi+Gi)∼Categorical(π)
Gumbel分布的累积分布函数是:
F ( g ) = exp ( − exp ( − g ) ) F(g) = \exp(-\exp(-g)) F(g)=exp(−exp(−g))
通过softmax函数进行连续松弛:
y i = exp ( ( log π i + G i ) / τ ) ∑ j exp ( ( log π j + G j ) / τ ) y_i = \frac{\exp((\log \pi_i + G_i)/\tau)}{\sum_j \exp((\log \pi_j + G_j)/\tau)} yi=∑jexp((logπj+Gj)/τ)exp((logπi+Gi)/τ)
当 τ → 0 \tau \to 0 τ→0时,这个分布收敛到离散的categorical分布;当 τ → ∞ \tau \to \infty τ→∞时,收敛到均匀分布。
神经正切核理论在NAS中的数学推导
为了深入理解架构性能的理论基础,我们引入神经正切核(Neural Tangent Kernel, NTK)理论。对于无限宽度的神经网络,其训练动力学可以完全由NTK描述。
考虑一个L层全连接网络,第 l l l层的输出为:
x i ( l ) = 1 n l ∑ j = 1 n l W i j ( l ) σ ( x j ( l − 1 ) ) x_i^{(l)} = \frac{1}{\sqrt{n_l}} \sum_{j=1}^{n_l} W_{ij}^{(l)} \sigma(x_j^{(l-1)}) xi(l)=nl1j=1∑nlWij(l)σ(xj(l−1))
其中 n l n_l nl是第 l l l层的宽度, σ \sigma σ是激活函数。在网络宽度趋于无穷时,根据中心极限定理,网络的输出收敛到高斯过程。
NTK的递归定义推导:
定义核函数 Θ ( l ) ( x , x ′ ) \Theta^{(l)}(x, x') Θ(l)(x,x′)为第 l l l层的NTK,其递归关系为:
Θ ( l ) ( x , x ′ ) = Σ ( l ) ( x , x ′ ) + Λ ( l ) ( x , x ′ ) ⋅ Θ ( l − 1 ) ( x , x ′ ) \Theta^{(l)}(x, x') = \Sigma^{(l)}(x, x') + \Lambda^{(l)}(x, x') \cdot \Theta^{(l-1)}(x, x') Θ(l)(x,x′)=Σ(l)(x,x′)+Λ(l)(x,x′)⋅Θ(l−1)(x,x′)
其中:
Σ ( l ) ( x , x ′ ) = E [ σ ( z ) σ ( z ′ ) ] ,其中 ( z , z ′ ) ∼ N ( 0 , K ( l − 1 ) ) \Sigma^{(l)}(x, x') = \mathbb{E}[\sigma(z)\sigma(z')] \text{,其中} (z, z') \sim \mathcal{N}(0, K^{(l-1)}) Σ(l)(x,x′)=E[σ(z)σ(z′)],其中(z,z′)∼N(0,K(l−1))
Λ ( l ) ( x , x ′ ) = E [ σ ˙ ( z ) σ ˙ ( z ′ ) ] ,其中 σ ˙ 为 σ 的导数 \Lambda^{(l)}(x, x') = \mathbb{E}[\dot{\sigma}(z)\dot{\sigma}(z')] \text{,其中} \dot{\sigma}为\sigma的导数 Λ(l)(x,x′)=E[σ˙(z)σ˙(z′)],其中σ˙为σ的导数
协方差矩阵 K ( l − 1 ) K^{(l-1)} K(l−1)定义为:
K ( l − 1 ) = ( K ( l − 1 ) ( x , x ) K ( l − 1 ) ( x , x ′ ) K ( l − 1 ) ( x ′ , x ) K ( l − 1 ) ( x ′ , x ′ ) ) K^{(l-1)} = \begin{pmatrix} K^{(l-1)}(x, x) & K^{(l-1)}(x, x') \\ K^{(l-1)}(x', x) & K^{(l-1)}(x', x') \end{pmatrix} K(l−1)=(K(l−1)(x,x)K(l−1)(x′,x)K(l−1)(x,x′)K(l−1)(x′,x′))
架构评分的NTK推导:
对于给定架构 A A A,其表达能力可以通过NTK的谱特性量化。定义架构评分为:
S N T K ( A ) = log det ( Θ A + λ I ) S_{NTK}(A) = \log \det(\Theta_A + \lambda I) SNTK(A)=logdet(ΘA+λI)
其中 Θ A \Theta_A ΘA是架构 A A A对应的NTK矩阵, λ \lambda λ是正则化参数。
通过Fredholm行列式的展开,我们可以将其写成:
S N T K ( A ) = ∑ k = 0 ∞ ( − 1 ) k λ n − k tr ( Λ k ( Θ A ) ) S_{NTK}(A) = \sum_{k=0}^{\infty} (-1)^k \lambda^{n-k} \text{tr}(\Lambda_k(\Theta_A)) SNTK(A)=k=0∑∞(−1)kλn−ktr(Λk(ΘA))
其中 Λ k ( Θ A ) \Lambda_k(\Theta_A) Λk(ΘA)是 Θ A \Theta_A ΘA的第 k k k个对称幂的迹。
信息论框架下的架构分析
从信息论的角度,优秀的神经网络架构应该在前向传播过程中保持信息的有效流动。我们通过互信息来量化这一特性。
逐层信息传递的数学建模:
设 X X X为输入, H l H_l Hl为第 l l l层的隐状态, Y Y Y为输出标签。信息传递效率可以通过条件互信息衡量:
I ( X ; Y ∣ H l ) = H ( Y ∣ H l ) − H ( Y ∣ X , H l ) I(X; Y | H_l) = H(Y | H_l) - H(Y | X, H_l) I(X;Y∣Hl)=H(Y∣Hl)−H(Y∣X,Hl)
由于 H ( Y ∣ X , H l ) = H ( Y ∣ X ) H(Y | X, H_l) = H(Y | X) H(Y∣X,Hl)=H(Y∣X)( H l H_l Hl是 X X X的函数),我们有:
I ( X ; Y ∣ H l ) = H ( Y ∣ H l ) − H ( Y ∣ X ) I(X; Y | H_l) = H(Y | H_l) - H(Y | X) I(X;Y∣Hl)=H(Y∣Hl)−H(Y∣X)
信息瓶颈原理的推导:
根据信息瓶颈理论,第 l l l层应该最大化 I ( H l ; Y ) I(H_l; Y) I(Hl;Y)(保留与标签相关的信息)同时最小化 I ( H l ; X ) I(H_l; X) I(Hl;X)(压缩输入信息)。拉格朗日优化目标为:
L I B = I ( H l ; Y ) − β I ( H l ; X ) \mathcal{L}_{IB} = I(H_l; Y) - \beta I(H_l; X) LIB=I(Hl;Y)−βI(Hl;X)
其中 β \beta β控制压缩程度。通过变分推断,我们可以将其转化为可优化的形式:
L I B = E p ( x , y ) [ log q ( y ∣ h l ) ] − β D K L [ p ( h l ∣ x ) ∣ ∣ r ( h l ) ] \mathcal{L}_{IB} = \mathbb{E}_{p(x,y)}[\log q(y|h_l)] - \beta D_{KL}[p(h_l|x) || r(h_l)] LIB=Ep(x,y)[logq(y∣hl)]−βDKL[p(hl∣x)∣∣r(hl)]
其中 r ( h l ) r(h_l) r(hl)是先验分布, q ( y ∣ h l ) q(y|h_l) q(y∣hl)是变分后验。
架构信息流评分的推导:
定义架构的信息流评分为:
S I n f o ( A ) = ∑ l = 1 L I ( H l ; Y ) I ( H l ; X ) ⋅ w l S_{Info}(A) = \sum_{l=1}^L \frac{I(H_l; Y)}{I(H_l; X)} \cdot w_l SInfo(A)=l=1∑LI(Hl;X)I(Hl;Y)⋅wl
其中 w l w_l wl是层权重。这个评分衡量了架构在每一层保持任务相关信息的能力。
通过Jensen不等式,我们可以证明:
S I n f o ( A ) ≥ ∑ l = 1 L w l I ( H l ; Y ) ∑ l = 1 L w l I ( H l ; X ) S_{Info}(A) \geq \frac{\sum_{l=1}^L w_l I(H_l; Y)}{\sum_{l=1}^L w_l I(H_l; X)} SInfo(A)≥∑l=1LwlI(Hl;X)∑l=1LwlI(Hl;Y)
当且仅当所有层的信息比例相等时等号成立,这为设计平衡的架构提供了理论指导。
双层优化的收敛性分析
DARTS的双层优化问题在数学上具有挑战性。我们提供一个严格的收敛性分析。
问题形式化:
考虑双层优化问题:
min α f ( α , w ∗ ( α ) ) s.t. w ∗ ( α ) = arg min w g ( α , w ) \begin{aligned} \min_{\alpha} \quad & f(\alpha, w^*(\alpha)) \\ \text{s.t.} \quad & w^*(\alpha) = \arg\min_w g(\alpha, w) \end{aligned} αmins.t.f(α,w∗(α))w∗(α)=argwming(α,w)
其中 f f f是上层目标(验证损失), g g g是下层目标(训练损失)。
隐函数定理的应用:
假设 g ( α , w ) g(\alpha, w) g(α,w)关于 w w w是强凸的,即 ∇ w 2 g ( α , w ) ⪰ μ I \nabla_w^2 g(\alpha, w) \succeq \mu I ∇w2g(α,w)⪰μI, μ > 0 \mu > 0 μ>0。根据隐函数定理,最优解 w ∗ ( α ) w^*(\alpha) w∗(α)满足:
d w ∗ d α = − [ ∇ w 2 g ( α , w ∗ ) ] − 1 ∇ α w 2 g ( α , w ∗ ) \frac{dw^*}{d\alpha} = -[\nabla_w^2 g(\alpha, w^*)]^{-1} \nabla_{\alpha w}^2 g(\alpha, w^*) dαdw∗=−[∇w2g(α,w∗)]−1∇αw2g(α,w∗)
上层梯度的完整推导:
上层目标的梯度为:
d f d α = ∇ α f + ∇ w f ⋅ d w ∗ d α \frac{df}{d\alpha} = \nabla_\alpha f + \nabla_w f \cdot \frac{dw^*}{d\alpha} dαdf=∇αf+∇wf⋅dαdw∗
将隐函数定理的结果代入:
d f d α = ∇ α f − ∇ w f ⋅ [ ∇ w 2 g ] − 1 ∇ α w 2 g \frac{df}{d\alpha} = \nabla_\alpha f - \nabla_w f \cdot [\nabla_w^2 g]^{-1} \nabla_{\alpha w}^2 g dαdf=∇αf−∇wf⋅[∇w2g]−1∇αw2g
一阶近似的误差分析:
DARTS使用一阶近似 d w ∗ d α ≈ 0 \frac{dw^*}{d\alpha} \approx 0 dαdw∗≈0,忽略了第二项。定义真实梯度和近似梯度的差为:
Δ = ∇ w f ⋅ [ ∇ w 2 g ] − 1 ∇ α w 2 g \Delta = \nabla_w f \cdot [\nabla_w^2 g]^{-1} \nabla_{\alpha w}^2 g Δ=∇wf⋅[∇w2g]−1∇αw2g
我们可以证明,在适当的正则性条件下:
∣ ∣ Δ ∣ ∣ ≤ ∣ ∣ ∇ w f ∣ ∣ ⋅ ∣ ∣ ∇ α w 2 g ∣ ∣ μ ||\Delta|| \leq \frac{||\nabla_w f|| \cdot ||\nabla_{\alpha w}^2 g||}{\mu} ∣∣Δ∣∣≤μ∣∣∇wf∣∣⋅∣∣∇αw2g∣∣
其中 μ \mu μ是 g g g关于 w w w的强凸性常数。这个界说明了一阶近似的误差随着下层问题的条件数增加而增大。
收敛性定理:
定理1: 假设目标函数满足Lipschitz连续性和强凸性条件,DARTS算法以学习率 η \eta η执行梯度下降,那么存在常数 C > 0 C > 0 C>0,使得:
E [ ∣ ∣ ∇ f ( α t ) ∣ ∣ 2 ] ≤ C t \mathbb{E}[||∇f(\alpha_t)||^2] \leq \frac{C}{t} E[∣∣∇f(αt)∣∣2]≤tC
其中 α t \alpha_t αt是第 t t t次迭代的参数。
证明思路: 通过构造Lyapunov函数 V t = f ( α t ) − f ∗ V_t = f(\alpha_t) - f^* Vt=f(αt)−f∗,其中 f ∗ f^* f∗是全局最优值,利用强凸性和Lipschitz条件可以证明 V t V_t Vt以 O ( 1 / t ) O(1/t) O(1/t)的速度收敛。
权重共享机制的理论分析
ENAS等方法使用权重共享来加速搜索,但这种策略的理论基础一直不够清晰。我们提供一个严格的分析框架。
超网络的数学建模:
定义超网络为 S = ( V , E , O ) \mathcal{S} = (V, E, O) S=(V,E,O),其中 V V V是节点集合, E E E是边集合, O O O是操作集合。子架构 A ⊂ S A \subset \mathcal{S} A⊂S通过选择边的子集定义。
权重共享意味着所有包含边 ( i , j ) (i,j) (i,j)的子架构共享参数 W i j W_{ij} Wij。超网络的损失函数为:
L s u p e r ( W ) = E A ∼ A [ L A ( W A ) ] \mathcal{L}_{super}(W) = \mathbb{E}_{A \sim \mathcal{A}}[\mathcal{L}_A(W_A)] Lsuper(W)=EA∼A[LA(WA)]
其中 A \mathcal{A} A是架构分布, W A W_A WA是子架构 A A A使用的权重子集。
权重耦合的影响分析:
不同子架构之间的权重耦合可能导致负迁移。定义两个架构 A 1 , A 2 A_1, A_2 A1,A2之间的耦合强度为:
C ( A 1 , A 2 ) = ∣ E A 1 ∩ E A 2 ∣ ∣ E A 1 ∪ E A 2 ∣ C(A_1, A_2) = \frac{|E_{A_1} \cap E_{A_2}|}{|E_{A_1} \cup E_{A_2}|} C(A1,A2)=∣EA1∪EA2∣∣EA1∩EA2∣
我们可以证明,当耦合强度过高时,权重共享会降低搜索质量:
引理1: 设 A 1 , A 2 A_1, A_2 A1,A2是两个架构,其独立训练的最优权重分别为 W 1 ∗ , W 2 ∗ W_1^*, W_2^* W1∗,W2∗。在权重共享下,联合优化的权重 W s h a r e d W^{shared} Wshared满足:
L A 1 ( W s h a r e d ) + L A 2 ( W s h a r e d ) ≥ L A 1 ( W 1 ∗ ) + L A 2 ( W 2 ∗ ) + ϵ C ( A 1 , A 2 ) \mathcal{L}_{A_1}(W^{shared}) + \mathcal{L}_{A_2}(W^{shared}) \geq \mathcal{L}_{A_1}(W_1^*) + \mathcal{L}_{A_2}(W_2^*) + \epsilon C(A_1, A_2) LA1(Wshared)+LA2(Wshared)≥LA1(W1∗)+LA2(W2∗)+ϵC(A1,A2)
其中 ϵ > 0 \epsilon > 0 ϵ>0是与权重差异相关的常数。
这个结果表明,高耦合的架构在权重共享下会产生额外的优化误差。
Gumbel-Softmax机制的概率论推导
Gumbel-Softmax提供了一种在保持可微性的同时进行离散采样的方法,其数学基础值得深入分析。
Gumbel分布的基本性质:
Gumbel分布的概率密度函数为:
p ( g ) = exp ( − ( g + exp ( − g ) ) ) p(g) = \exp(-(g + \exp(-g))) p(g)=exp(−(g+exp(−g)))
其累积分布函数为:
F ( g ) = exp ( − exp ( − g ) ) F(g) = \exp(-\exp(-g)) F(g)=exp(−exp(−g))
Gumbel-Max技巧的推导:
引理2: 设 { G i } i = 1 k \{G_i\}_{i=1}^k {Gi}i=1k独立同分布于 Gumbel ( 0 , 1 ) \text{Gumbel}(0,1) Gumbel(0,1), { π i } i = 1 k \{\pi_i\}_{i=1}^k {πi}i=1k是概率权重。定义 Z i = log π i + G i Z_i = \log \pi_i + G_i Zi=logπi+Gi,则:
P ( arg max i Z i = j ) = π j P(\arg\max_i Z_i = j) = \pi_j P(argimaxZi=j)=πj
证明: 我们需要计算 P ( Z j > Z i , ∀ i ≠ j ) P(Z_j > Z_i, \forall i \neq j) P(Zj>Zi,∀i=j)。
P ( Z j > Z i , ∀ i ≠ j ) = P ( log π j + G j > log π i + G i , ∀ i ≠ j ) P(Z_j > Z_i, \forall i \neq j) = P(\log \pi_j + G_j > \log \pi_i + G_i, \forall i \neq j) P(Zj>Zi,∀i=j)=P(logπj+Gj>logπi+Gi,∀i=j)
利用Gumbel分布的性质,可以证明:
P ( G j − G i > log π i − log π j ) = π j π i + π j P(G_j - G_i > \log \pi_i - \log \pi_j) = \frac{\pi_j}{\pi_i + \pi_j} P(Gj−Gi>logπi−logπj)=πi+πjπj
通过归纳法可以证明 P ( arg max i Z i = j ) = π j P(\arg\max_i Z_i = j) = \pi_j P(argmaxiZi=j)=πj。
连续松弛的数学分析:
Gumbel-Softmax通过温度参数 τ \tau τ实现连续松弛:
y i = exp ( ( log π i + G i ) / τ ) ∑ j = 1 k exp ( ( log π j + G j ) / τ ) y_i = \frac{\exp((\log \pi_i + G_i)/\tau)}{\sum_{j=1}^k \exp((\log \pi_j + G_j)/\tau)} yi=∑j=1kexp((logπj+Gj)/τ)exp((logπi+Gi)/τ)
定理2: 当 τ → 0 \tau \to 0 τ→0时, y i y_i yi以概率1收敛到one-hot向量;当 τ → ∞ \tau \to \infty τ→∞时, y i y_i yi收敛到均匀分布。
收敛速度分析:
我们可以量化收敛的速度。定义 Δ τ = E [ ∣ ∣ y − e j ∣ ∣ 2 2 ] \Delta_\tau = \mathbb{E}[||y - e_j||_2^2] Δτ=E[∣∣y−ej∣∣22],其中 e j e_j ej是真实的one-hot向量, j = arg max i ( log π i + G i ) j = \arg\max_i (\log \pi_i + G_i) j=argmaxi(logπi+Gi)。
通过泰勒展开和概率不等式,可以证明:
Δ τ = O ( τ log k ) \Delta_\tau = O(\tau \log k) Δτ=O(τlogk)
这表明收敛速度与类别数的对数成正比,这为选择合适的温度参数提供了理论指导。
进化算法的收敛性理论
进化算法在NAS中的应用虽然直观,但其理论分析相对复杂。我们提供一个简化的收敛性分析。
马尔可夫链建模:
将进化过程建模为状态空间为架构集合 A \mathcal{A} A的马尔可夫链。转移概率 P ( A → A ′ ) P(A \to A') P(A→A′)由选择、变异、交叉操作共同决定。
对于正则化进化(Regularized Evolution),转移概率为:
P ( A → A ′ ) = P s e l e c t ( A ) ⋅ P m u t a t e ( A → A ′ ) P(A \to A') = P_{select}(A) \cdot P_{mutate}(A \to A') P(A→A′)=Pselect(A)⋅Pmutate(A→A′)
其中选择概率与适应度成正比:
P s e l e c t ( A ) = exp ( β ⋅ f i t n e s s ( A ) ) ∑ A ′ ′ ∈ P o p u l a t i o n exp ( β ⋅ f i t n e s s ( A ′ ′ ) ) P_{select}(A) = \frac{\exp(\beta \cdot fitness(A))}{\sum_{A'' \in Population} \exp(\beta \cdot fitness(A''))} Pselect(A)=∑A′′∈Populationexp(β⋅fitness(A′′))exp(β⋅fitness(A))
收敛性分析:
定理3: 如果变异操作满足不可约性条件(任意两个架构之间可以通过有限次变异相互到达),且选择压力适中,则正则化进化算法以概率1收敛到全局最优解。
证明思路: 利用马尔可夫链的遍历性理论,证明系统的平稳分布将所有概率质量集中在最优解上。关键是证明最优解的basin of attraction在长期运行下占主导地位。