Growing Networks with Autonomous Pruning

作者: Charles de Lambilly, Stefan Duffner 年份: 2026 会议: arXiv 分类: 模型增长

论文笔记:Growing Networks with Autonomous Pruning

元信息

项目内容
机构未明确标注(推测为法国高校)
日期March 2026
项目主页
对比基线NAP, RigL, SNIP, GraSP, LTH, ART
链接arXiv

一句话总结

提出 GNAP,通过交替执行网络增长与基于 Gumbel-Softmax 门控的自主剪枝,从小网络出发动态构建高精度稀疏网络

核心贡献

增长-剪枝交替策略: 当剪枝收敛(门控变化率低于阈值)时自动触发增长阶段,无需预定义网络架构

SVD 正交初始化: 新增神经元到旧神经元的权重通过 SVD 分解实现正交初始化,避免破坏已训练参数的表示空间

结构化/非结构化统一框架: Gumbel-Softmax 门控机制同时支持 结构化剪枝(整个卷积核)和非结构化剪枝(单个权重),且剪枝完全由梯度下降自主决定

问题背景

要解决的问题

传统 神经架构搜索 需要预先固定网络结构,无法在训练过程中动态调整模型大小

大型网络训练计算成本高、容易过拟合,而小网络表达能力不足

现有方法的局限

剪枝方法LTH, SNIP, GraSP): 需要先训练或初始化一个大网络,再做剪枝,浪费计算资源

增长方法(Splitting Steepest Descent, Firefly, GradMax): 只做增长不做剪枝,无法自动去除冗余参数

增长+剪枝方法(SNFS, RigL): 维持固定稀疏度约束,无法让网络自主决定最终大小

本文的动机

从一个很小的网络出发,让网络自主决定何时需要更多参数(增长)以及哪些参数是冗余的(剪枝),最终得到一个精度高但极度稀疏的网络

方法详解

模型架构

GNAP 采用类 DenseNet 架构:

  • 输入: 图像
  • Backbone: Dense blocks,每个卷积层与后续所有层(稀疏)连接
  • 核心模块: Gumbel-Softmax 门控用于自主剪枝 + SVD 正交初始化用于增长
  • 输出: 分类结果(通过单个全连接层)
  • 结构: BB 个 dense block,block 间用 pooling 下采样,每个 block 内层数和宽度可变

核心模块

模块1: 自主剪枝(Autonomous Pruning)

设计动机: 利用 Gumbel-Softmax 分布的可微采样实现端到端的门控学习,让网络自主决定哪些连接应保留

具体实现:

  • 为每个权重(非结构化)或每个卷积核(结构化剪枝)分配一个门控变量 gig_i
  • 门控从 Gumbel-Softmax 分布采样,取值为 0(关闭)或 1(开启)
  • 训练时通过 L1 正则化 最大化稀疏性,目标密度 Dtarget=0D_{\text{target}} = 0
  • 推理时使用确定性 softmax,阈值 γ=0.5\gamma = 0.5 决定门控开关

模块2: 增长策略(Growing Strategy)

When: 当门控数量的相对变化率低于阈值 θ\theta 时触发(表示剪枝已收敛)

Where: 每个 block 的每层添加 CC 个新神经元,并在每个 block 末尾添加新层

How:

  • 新→新、旧→新权重: 高斯初始化 N(0,σ)\mathcal{N}(0, \sigma)σ=1/ni\sigma = 1/n_i
  • 新→旧权重: 通过 SVD 正交初始化,确保新神经元与已有表示空间正交

模块3: 细化阶段(Refinement Phase)

训练最后阶段(增长停止后),增大稀疏正则系数 α\alpha,进一步剪除冗余参数

细化 200 个 epoch,α\alpha0.5×1070.5 \times 10^{-7} 增大到 0.25×1050.25 \times 10^{-5}

关键公式

公式1: 稀疏正则化损失

L=Lpred+αg1\mathcal{L} = \mathcal{L}_{\text{pred}} + \alpha \cdot \|\mathbf{g}\|_1

含义: 在预测损失基础上添加门控变量的 L1 范数,鼓励网络最大化稀疏性

符号说明:

  • Lpred\mathcal{L}_{\text{pred}}: 分类预测损失(交叉熵)
  • α\alpha: 稀疏正则权重
  • g\mathbf{g}: 所有门控变量组成的向量
  • g1\|\mathbf{g}\|_1: 开启门控的数量(L1 范数)

公式2: 原始 NAP 损失(对比)

L=Lpred+α1Ni=0N1giDtarget\mathcal{L} = \mathcal{L}_{\text{pred}} + \alpha \cdot \left| \frac{1}{N} \sum_{i=0}^{N-1} g_i - D_{\text{target}} \right|

含义: 原始 NAP 使用目标密度 DtargetD_{\text{target}} 控制稀疏度,GNAP 改为 Dtarget=0D_{\text{target}} = 0 的 L1 形式

符号说明:

  • NN: 权重/门控总数
  • gig_i: 第 ii 个门控变量
  • DtargetD_{\text{target}}: 目标权重密度

公式3: 增长触发条件

nmeanngatesnmean<θ\frac{n_{\text{mean}} - n_{\text{gates}}}{n_{\text{mean}}} < \theta

含义: 当开启门控数量的相对变化率低于阈值 θ\theta 时,判定剪枝已收敛,触发增长阶段

符号说明:

  • ngatesn_{\text{gates}}: 当前开启的门控数量
  • nmeann_{\text{mean}}: 过去 MM 个 epoch 的门控数量滑动平均
  • θ\theta: 增长触发阈值(默认 0.05)

公式4: SVD 分解

USV=SVD(Wl)U S V = \text{SVD}(W_l)

含义: 对层 ll 的权重矩阵做奇异值分解,获取已有表示的基向量空间

符号说明:

  • WlRm×nW_l \in \mathbb{R}^{m \times n}: 层 ll 的权重矩阵
  • U,S,VU, S, V: 左奇异向量、奇异值、右奇异向量

公式5: 扩展右奇异矩阵

V=(Vr)V' = \begin{pmatrix} V \\ r \end{pmatrix}

含义: 将一个随机向量 rr 附加到右奇异矩阵 VV,扩展基向量空间

符号说明:

  • VV: 原始右奇异向量矩阵
  • rr: 随机初始化的向量

公式6: 正交约束求解

wV=c,c=(0,0,,0,1)w V' = c, \quad c = (0, 0, \ldots, 0, 1)

含义: 求解线性方程,使新权重向量 ww 与已有基向量 VV 正交

符号说明:

  • ww: 新神经元到旧层的权重向量
  • cc: 约束向量,最后一维为 1 确保与 rr 方向对齐

公式7: 符号与尺度恢复

w=sww = s \odot |w'|

含义: 将正交解 ww' 的符号替换为随机符号 ss,保留其模长

符号说明:

  • ss: 随机符号向量(±1\pm 1
  • ww': 正交约束的解
  • \odot: 逐元素乘法

公式8: 高斯初始化标准差

σ=1ni\sigma = \frac{1}{n_i}

含义: 新→新、旧→新权重的初始化标准差与输入维度成反比

符号说明:

  • nin_i: 输入神经元数量

关键图表

Figure 1: Network Architecture / 网络架构

Figure 1: GNAP Architecture

说明: GNAP 的整体网络架构。基于 DenseNet 设计,每个卷积层可(稀疏地)连接到所有后续层。网络由多个 dense block 组成,block 间通过 pooling 下采样,最后接全连接分类层。

Figure 2: Training Evolution / 训练过程演化

Figure 2: Training Evolution

说明: GNAP-U 在 CIFAR10 上的训练过程。展示了准确率、训练/验证损失和开启门控数量的变化。增长阶段在曲线上表现为明显的跳变(门控数量突增),随后梯度下降平滑恢复。注意门控数量为对数刻度

Figure 3: Accuracy vs. Parameters / 精度-参数权衡

Figure 3: Accuracy vs Parameters

说明: 不同训练阶段(增长前的快照)的精度-参数关系。每条曲线对应一个增长阶段前的模型,点代表不同推理门控阈值 γ\gamma(0.01 到 0.99)。随着增长阶段推进,模型精度提升同时参数量反而减少——说明新增参数帮助探索更高效的解。最终细化阶段实现显著的稀疏化。

Figure 4: Gate Evolution Visualization / 门控演化可视化

Figure 4: Gate Evolution{:width 600}

说明: GNAP-U 在 CIFAR10 训练过程中活跃连接(开启门控)的演化。像素 (i,j)(i, j) 表示从神经元 jj 到神经元 ii 的连接。可观察到:早期快速剪枝、增长阶段新增神经元、epoch 160-200 的大规模剪枝事件、最终收敛到均匀分布。

Table 1: 初始架构配置

模型Block 1Block 2Block 3FC
GNAP (MNIST)101010-
GNAP (CIFAR10)64,64,64128,128,128256,256,25610
GNAP (CIFAR100)64,64,64128,128,128256,256,256100
NAP (m1) MNIST101010-
NAP (m2) MNIST10010010-
NAP (m3) CIFAR1064128-10
NAP (m4) CIFAR1064,64128,128-10
NAP (m5) CIFAR1064,64,64128,128,128-10
NAP (m6) CIFAR1064,64,64128,128,128256,256,25610
NAP (m7) CIFAR10064,64,64128,128,128-100
NAP (m8) CIFAR10064,64,64128,128,128256,256,256100

说明: GNAP 从与 NAP 最小配置相同的初始架构出发,通过增长阶段自动扩展

Table 2: MNIST 结果

方法准确率LinksWeights
NAP-U (m1)0.9875±0.00085762±4375762±437
NAP-U (m2)0.9938±0.00089264±22029264±2202
GNAP-U (rand)0.9943±0.00046154±2916154±291
GNAP-U (ortho)0.9944±0.00046234±2036234±203
NAP-S (m1)0.9823±0.00235409±13885928±1482
NAP-S (m2)0.9923±0.001221003±1006828533±11678
GNAP-S (rand)0.9946±0.00065221±115114504±2399
GNAP-S (ortho)0.9947±0.00084971±62913784±1916

说明: GNAP 在 MNIST 上达到 99.44-99.47% 准确率,仅需约 6.2k 参数(非结构化)或 5k links(结构化),显著优于同等大小的 NAP

Table 3: CIFAR10 结果

方法准确率LinksWeights
NAP-U (m4)0.8763±0.0055235655±67951235655±67951
NAP-U (m5)0.8849±0.0107245168±68530245168±68530
NAP-U (m6)0.9162±0.0024696837±116179696837±116179
GNAP-U (rand)0.9245±0.0046179979±26074179979±26074
GNAP-U (ortho)0.9222±0.0041157765±18620157765±18620
NAP-S (m4)0.8802±0.004999097±38844340501±65564
NAP-S (m5)0.8912±0.0051143666±29348521724±88896
NAP-S (m6)0.9155±0.0020311167±281182244999±228665
GNAP-S (rand)0.9331±0.002288365±27679681377±200233
GNAP-S (ortho)0.9305±0.004888227±31551668941±220206

说明: GNAP-U (ortho) 以 157.8k 参数达到 92.22% 准确率,比需要 696.8k 参数的 NAP-U (m6) 仅低 0.6% 但参数量少 77%。GNAP-S 在结构化剪枝下达到 93.31%,links 数仅 88k

Table 4: CIFAR100 结果

方法准确率LinksWeights
NAP-U (m7)0.5583±0.0173393330±121100393330±121100
NAP-U (m8)0.6408±0.0158410827±118481410827±118481
GNAP-U (rand)0.6692±0.0106207289±59319207289±59319
GNAP-U (ortho)0.6656±0.0086179857±28182179857±28182
NAP-S (m7)0.5085±0.0124231668±3532247850±4221
NAP-S (m8)0.5965±0.0141235029±34575461149±142521
GNAP-S (rand)0.6812±0.0067135354±17064309983±38011
GNAP-S (ortho)0.6784±0.0055125225±13379275970±28591

说明: CIFAR100 上 GNAP 优势更加明显。GNAP-S (rand) 以 135k links 达到 68.12%,而 NAP-S (m8) 以 235k links 仅 59.65%——精度高 8.5 个百分点同时参数少 42%

Table 5: CIFAR10 SOTA 对比

方法准确率Weights基础架构
SimpleNet0.9198310000-
SNIP0.9272±0.0018186013ResNet32
SNIP0.7612±0.2196410968VGG19
GraSP0.9286±0.0019186013ResNet32
GraSP0.9216±0.0014410968VGG19
SRatio0.9185±0.001693006ResNet32
SRatio0.9233±0.0024410968VGG19
LTH0.9268±0.0032186013ResNet32
LTH0.4117±0.4276410968VGG19
IMP0.9135±0.001837203ResNet32
IMP0.9128±0.0029205484VGG19
RigL0.9307±0.002293006ResNet32
RigL0.9141±0.0015410968VGG19
ART0.9269±0.002237203ResNet32
ART0.9291±0.0010102742VGG19
MCUNet0.8970210100-
GNAP-U0.9222±0.0041157765无需预定义

说明: GNAP 在无需预定义基础架构的情况下,以 157.8k 参数达到与基于 ResNet32/VGG19 的 SOTA 剪枝方法可比的精度。与 RigL (ResNet32, 93k参数, 93.07%) 相比稍低 0.85%,但 GNAP 无需任何先验架构

Table 6: CIFAR100 SOTA 对比

方法准确率Weights基础架构
SimpleNet0.6468310000-
SNIP0.6554±0.002693006ResNet32
GraSP0.6584±0.001493006ResNet32
SRatio0.6708±0.004193006ResNet32
LTH0.6680±0.004993006ResNet32
IMP0.6467±0.003637203ResNet32
RigL0.6446±0.003637203ResNet32
RigL0.6748±0.0036410968VGG19
ART0.6586±0.002218601ResNet32
ART0.6453±0.002441097VGG19
GNAP-U0.6656±0.0086179857无需预定义

说明: CIFAR100 上 GNAP 精度与 SRatio (67.08%) 和 LTH (66.80%) 接近,优于大部分基于 ResNet32 的方法,同时无需任何先验架构设计

实验结果

主要结论

MNIST: GNAP-S (ortho) 达到 99.47% 准确率,仅 ~5k links,超越所有 NAP 变体

CIFAR-10: GNAP-S (rand) 达到 93.31%,links 数仅 88k;GNAP-U (ortho) 以 157.8k 参数达到 92.22%,与 SOTA 剪枝方法(RigL 93.07%、SNIP 92.72%)可比但无需预定义架构

CIFAR-100: GNAP-S (rand) 以 135k links 达到 68.12%,比 NAP-S (m8) 高 8.5 个百分点同时参数少 42%

增长的悖论: Figure 3 表明增长阶段添加参数后,模型后续训练中反而变得更小——新参数帮助网络发现更高效的解空间

正交 vs 随机初始化: 两者精度相当,但正交初始化(ortho)倾向于产出更稀疏的网络(参数量更少)

数据集

数据集规模特点用途
MNIST60k/10k手写数字 10 类训练/测试
CIFAR-1050k/10k自然图像 10 类训练/测试
CIFAR-10050k/10k自然图像 100 类训练/测试

实现细节

Backbone: 类 DenseNet,dense block + pooling

优化器: Adam,默认参数

学习率: 0.01

Weight Decay: 10610^{-6}

Batch Size: 256

数据增强: 水平翻转(50%)、旋转(最大15°)、仿射变换(shear 10, translate 0.1)、裁剪(0.8~1.0)、cutout

GNAP 特有参数:

  • 稀疏损失权重 α\alpha: 0.5×1070.5 \times 10^{-7}
  • 增长阈值 θ\theta: 0.05
  • 滑动平均窗口 MM: 10 epochs
  • 准确率容忍度 θa\theta_a: 0.5%(CIFAR)/ 0.25%(MNIST)
  • 固定 12 次增长阶段
  • 增长截止: 总 epoch 的 30%
  • 细化阶段: 200 epochs,α=0.25×105\alpha = 0.25 \times 10^{-5}

可视化结果

Figure 3 展示了一个反直觉的现象:增长阶段添加参数后,模型在后续训练中反而变得更小更稀疏。这说明新增参数帮助网络探索更高效的解空间

Figure 4 展示了门控演化的全过程,可观察到早期剪枝的激进性和增长后的重新组织行为

批判性思考

优点

无需先验架构: 从极小网络出发,自动发现合适的网络结构,是真正意义上的架构自动设计

增长-剪枝耦合设计优雅: 用门控收敛作为增长触发条件,在数学上自洽——当网络无法再通过剪枝优化时才增长

SVD 正交初始化有理论支撑: 确保新神经元不与已有表示冗余,最大化新参数的信息增益

实验充分: 三个数据集、结构化与非结构化两种模式、多个 baseline 的对比

局限性

仅在小规模数据集上验证: MNIST/CIFAR-10/CIFAR-100 规模较小,未在 ImageNet 等大规模数据集上验证可扩展性

DenseNet 架构限制: 依赖 DenseNet 的全连接结构,未验证在 ResNet、Transformer 等主流架构上的适用性

缺乏训练效率分析: 未报告总训练时间、FLOPs 对比,无法判断从小网络增长是否真的比直接训练大网络再剪枝更高效

增长策略较粗糙: “everywhere add C neurons” 的策略缺乏对不同层/block 需求差异的考虑

与 SOTA 差距: 在 CIFAR-10 上与 RigL (93.07%) 仍有 ~0.85% 差距,且 RigL 参数量更少(93k vs 158k)

潜在改进方向

自适应增长: 根据每层的表达瓶颈程度(如 effective rank)决定增长量,而非均匀添加

扩展到 Transformer: 将门控机制应用到 attention head 和 FFN 维度

大规模验证: 在 ImageNet 上验证,对比 progressive training 系列方法

训练效率对比: 与 “大网络→剪枝” 的 pipeline 做总 FLOPs 对比

可复现性评估

  • 代码开源
  • 预训练模型
  • 训练细节完整(超参数全部给出)
  • 数据集可获取(MNIST, CIFAR-10, CIFAR-100)

关联笔记

基于

NAP: GNAP 的剪枝机制直接基于 NAP 的 Gumbel-Softmax 门控方法,但将目标密度改为 0 并扩展到结构化剪枝

DenseNet: 网络架构的基础,利用密集连接结构实现跨层信息流

对比

RigL: 维持固定稀疏度的动态稀疏训练方法,GNAP 允许稀疏度自由变化

SNIP: 初始化时一次性剪枝,GNAP 在训练过程中持续剪枝

GraSP: 基于梯度信号的初始化剪枝

LTH: 彩票假设,需要多轮训练-剪枝-重置迭代

ART: 自适应正则化训练,同样追求稀疏网络但不做增长

方法相关

Gumbel-Softmax: 核心剪枝机制的数学基础,实现离散门控的可微采样

SVD: 正交初始化的数学工具

结构化剪枝: GNAP 支持的剪枝模式之一

L1 正则化: 稀疏性诱导的正则化方法

progressive training: 渐进式训练的一般范式

神经架构搜索: GNAP 可视为一种隐式 NAS

硬件/数据相关

CIFAR-10: 主要实验数据集

CIFAR-100: 主要实验数据集

速查卡片

Growing Networks with Autonomous Pruning

  • 核心: 从小网络出发,交替增长(SVD正交初始化)和自主剪枝(Gumbel-Softmax门控),自动构建稀疏高效网络
  • 方法: DenseNet 架构 + Gumbel-Softmax 门控自主剪枝 + 门控收敛触发增长 + SVD 正交初始化新神经元
  • 结果: MNIST 99.44%/6.2k参数,CIFAR-10 92.2%/157.8k参数,CIFAR-100 66.6%/179.9k参数
  • 代码: 未开源

笔记创建时间: 2026-03-24