精读笔记
Problem Setting
这篇论文不是在提出一个新的 CNN 压缩 benchmark,而是在解决一个更工程真实但研究上经常被绕开的 setting:手上只有 pre-trained CNN,没有训练数据,也不想承担 fine-tuning 成本,却希望推理时根据预算动态降低计算量。关键矛盾是,结构化 pruning/gating 要想不伤精度通常需要数据或训练,而 data-free/static 方法即便能压缩,也通常生成固定模型,无法随输入冗余和硬件状态调整。HASTE 的问题定义很明确:在保持原网络接口和输出 channel 数不变的情况下,只临时减少每次卷积实际参与计算的输入 channel depth。难点在于这类动态压缩如果检测冗余的成本太高,就会把省下的 FLOPs 吃掉;如果压缩太粗,又会破坏已经训练好的表示对齐。
Motivation
已有路线不够的地方不只是“需要训练”,而是它们把压缩决策当作模型参数或策略网络的一部分:channel importance、gate、mask、routing 都需要通过数据学习。对 pre-trained checkpoint 来说,这引入了一个额外依赖:没有数据就无法可靠地学控制策略;有数据也会增加部署前适配成本。作者的核心观察是,CNN latent feature 中的冗余不是只存在于权重或全局通道层面,而是随输入、空间位置和层级变化;因此压缩应该发生在 inference-time feature 上,而不是一次性改模型。关键缺口是一个不训练、低开销、局部自适应、仍能保持卷积接口兼容的冗余发现机制。
Core Idea
HASTE 的真正核心是把 CNN 的 channel compression 从“选择哪些通道重要”改写为“哪些局部通道表示在当前 patch 中近似等价”。这改变了建模方式:通道不再被视为全局可删/不可删的静态结构,而是被视为局部上下文中的可合并计算单元。LSH 在这里提供的不是泛泛的加速技巧,而是一个无需训练的 inductive bias:方向相似的 channel slice 在卷积中对滤波器产生相近响应,因此可以共享一个代表输入。
它引入的信息流重组也很关键:被压缩的不是输出通道,也不是后续网络结构,而是单次卷积内部的 input-channel summation。通过把相似输入通道平均、把对应 filter slice 求和,方法把多个 channel-wise dot product 合并为一个,同时保留输出张量形状。这和 prior pruning 的本质区别在于,HASTE 不试图永久改变模型容量,而是利用 test-time latent redundancy 暂时降低算子内部维度;因此它比静态剪枝更可调,也比学习式 gating 更不依赖数据。
Method
HASTE 的机制可以压缩成三个必要组件。第一,patch-wise redundancy detection:它解决全局通道剪枝过于粗糙的问题,因为一个通道在不同空间位置的冗余程度可能不同;局部 patch 让压缩决策更贴近实际卷积上下文。第二,LSH-based grouping:它解决动态匹配成本问题,用随机超平面近似 cosine similarity,避免每个 patch 做 pairwise channel similarity;L 越大桶越多、碰撞越少,压缩越保守。第三,merge instead of prune:它解决训练自由场景下信息丢失不可恢复的问题;平均输入通道、求和对应 filter slice,相当于在卷积求和结构内做低损近似,而不是直接删除贡献。
稀疏超平面是辅助机制,主要服务于 overhead 控制,而不是核心贡献。starting layer 和 patch size 选择也更像工程约束:早层特征更脆弱,patch 太大又降低局部相似性和复用收益。真正的方法骨架仍然是“局部相似检索 + 卷积分配律合并 + 输出接口不变”。
Key Insight / Why It Works
HASTE 有效的根本原因不是 LSH 本身强,而是很多标准 CNN,尤其 ResNet/VGG 这类 overparameterized spatial-conv 模型,在中后层存在大量局部通道冗余;LSH 只是一个足够便宜的机制把这种冗余在 test time 暴露出来。它利用的是 latent structure 和 memory/compute reuse,而不是学到了新的 representation。更准确地说,这是一种 test-time compute adaptation:输入越简单、局部特征越重复,collision 越多,实际计算越少。
最可能的核心贡献是 merge formulation:如果只是用 LSH 找相似通道然后删除,训练自由条件下精度会崩;把输入均值和 filter 求和结合起来,才让近似仍然保持卷积输出的尺度和贡献结构。LSH 是关键 enabling tool,但不是不可替代的理论创新;任何足够便宜、足够保守的局部相似聚类都可能替代它。稀疏投影、patch size、starting layer 策略更像为了让 overhead/accuracy trade-off 可用的 engineering。
这篇工作的上限也由这个机制决定:它不是 learning-based compression,不会产生新的紧凑模型,也不会发现任务级重要性;它只收割当前表示中的冗余。若模型本身已经通过 depthwise/pointwise 设计去掉了冗余,或者卷积成本低到 hashing overhead 无法摊销,HASTE 就失去优势。所谓 dynamic/steerable 的能力也主要来自调 L 改变 collision rate,而不是一个真正理解输入复杂度的 planner。
Relation To Prior Work
最接近的谱系有三条:structured pruning、dynamic channel gating、ViT token merging。和 structured pruning 的差异在于,HASTE 不学习或估计全局通道重要性,也不永久删结构;它只在卷积内部做局部临时合并。和 dynamic gating 的差异在于,它没有训练控制器,不依赖额外 supervision,而是用 feature similarity 直接生成计算图。和 token merging 的相似性最强:二者都在 pre-trained model 的 latent representation 上找冗余并合并;差别是 ViT 可以自然减少 token length,而 CNN 必须保持固定 channel/output 接口,所以只能在算子内部压缩 input depth。
看似新的部分中,LSH、随机投影、稀疏投影都不是新思想;真正新增的信息是把 LSH collision 与卷积 channel-wise summation 的分配律结合,形成一个无需训练且可恢复原输出形状的动态卷积近似。它更像把 approximate nearest neighbor / token merging 的思想迁移到 CNN channel 维度,但迁移并不机械,因为 CNN 缺少 Transformer 那种天然可变长度结构。
Dataset / Evaluation
评估覆盖 CIFAR-10 和 ImageNet,模型覆盖 ResNet、VGG、WideResNet,以及一个 MobileNetV2 边界案例。这个设计基本能验证作者最主要的 claim:对标准大 CNN,HASTE 能 training-free 地获得可调 FLOPs reduction;对 lightweight/pointwise-heavy 架构,收益明显下降。ablation 也比较有价值,因为它直接比较了 global vs patch、remove vs merge、L1 vs LSH,说明核心机制不是简单的随机删通道。
但 evaluation 没有完全闭环部署 claim。latency 主要是估算,并且依赖“存在优化硬件/软件支持动态 patch-wise 操作”的假设;这恰恰是方法最难落地的部分。任务也集中在分类,没有检测、分割、视频或分布转移场景;这些任务对局部细节和空间一致性更敏感,channel merge 的误差可能更难被平均掉。因此实验支持“training-free FLOPs 可调压缩”多于支持“真实边缘部署加速”。
Limitation
核心前提是 latent channel redundancy 足够多且局部稳定。如果通道之间只是 cosine-similar 但对应 filter slice 的语义贡献不同,平均输入、求和 filter 的近似就会引入系统误差;文中用经验结果证明可行,但没有给出足够强的误差界或 failure characterization。另一个前提是动态分组的 overhead 能被摊销:对 3x3 spatial conv 可能成立,对 1x1 conv、linear layer、depthwise-separable 架构就不成立,这也是 MobileNetV2 结果差的根本原因。
scalability 上限也很明确:HASTE 越适合大而冗余的传统 CNN,越不适合现代高效架构;这使它更像 legacy/pretrained model deployment tool,而不是下一代高效视觉模型的通用组件。所谓 runtime adaptivity 也比较浅,主要是通过 L 控制 collision 概率,并没有显式建模硬件状态、输入难度或任务风险。真实部署中,每个 patch 不同 grouping 会带来 irregular memory access 和 kernel fragmentation;如果没有专门 kernel,FLOPs reduction 可能无法转化为 wall-clock speedup。增益来源也可能部分来自大模型过参数化,而非方法本身具备强泛化压缩能力。
Takeaway
- 最值得迁移的 insight 是:对已训练模型,压缩不一定要改权重或学 mask,也可以在算子内部利用 latent redundancy 做 test-time approximation。
- 第二,merge 通常比 prune 更适合 training-free setting,因为它保留贡献守恒,比直接删除更不破坏 representation alignment。
- 第三,动态压缩是否有实际价值取决于“冗余检测成本 / 原算子成本”的比值;这比单看 FLOPs reduction 更关键。
- 第四,未来真正值得做的是让这类方法适配 pointwise/linear-heavy 架构,或者设计硬件友好的 grouping/kernel,而不是继续在标准 CNN 上堆更多离线 FLOPs 数字。
一句话总结
HASTE 是一类面向 pre-trained CNN 的 training-free test-time redundancy merging 方法,其实质贡献是在卷积内部用低开销近似相似检索临时压缩通道维度,代表了从静态剪枝/学习式 gating 转向 latent-structure-driven runtime compression 的方法演化。
