Is Bin Generation Indispensable? A Bin-Generation-Free Dataset Quantization via Semantic Perspective¶
会议: CVPR 2026
论文: CVF Open Access
代码: https://github.com/MaijieDeng/BGFDQ
领域: 模型压缩 / 数据集量化 / 核心集选择
关键词: 数据集量化, 核心集选择, KNN 近邻, 自适应 patch dropping, 可扩展性
一句话总结¶
针对数据集量化里「bin 生成」步骤随同类样本数立方增长、大规模数据集跑不动,以及固定 patch 丢弃比例无法适配样本冗余差异的两大痛点,BGFDQ 用轻量 KNN 近邻识别替代昂贵的 bin 生成、用近邻感知的核心集选择保覆盖去冗余、再用语义偏移自适应地为每张图选丢弃比例,把复杂度从 \(O(CM^3)\) 降到 \(O(CM^2)\),在四个分类基准上稳定超过 SOTA(CIFAR-100 最高 +5%),还能扩展到单类 20 万样本(bin 生成法直接 OOM)。
研究背景与动机¶
领域现状:数据集量化(Dataset Quantization, DQ)是介于数据集蒸馏与核心集选择之间的压缩范式,压缩率高、跨架构迁移性好。开山之作 DQ 把流程定为三步:bin 生成(用子模优化把同类样本递归切成若干互不重叠的 bin)→ 核心集选择(从各 bin 均匀抽样)→ patch dropping(用 GradCAM++ 算 patch 重要性,按固定比例 \(\theta\) 丢掉低分 patch,训练时用 MAE 重建)。后续 DQAS、ADQ 在选择环节上加了主动学习/bin 加权。
现有痛点:(1) bin 生成贵——每选一个样本要算它与同类所有样本的平方欧氏距离(\(O(M^2)\)),完整 bin 生成迭代 \(O(CM)\) 轮,总复杂度高达 \(O(CM^3)\)。在 Fakeddit 这类某些类超 20 万样本的数据集上,选第一个样本就 OOM,即使内存够也要几小时。(2) 固定丢弃比例死板——不同图像里「不重要 patch」的比例差异巨大(图 2 显示有的图丢 25% 不够、有的丢 25% 已经丢掉关键内容),一刀切的 \(\theta\) 对大多数样本都不是最优,拉低压缩集质量。
核心矛盾:bin 生成本质上只是个「高成本的数据集分析器」,用来辅助核心集选择;而 patch dropping 的「均匀冗余」假设在真实数据上几乎不成立。两处都是「用一个昂贵/僵硬的全局操作去处理本该按样本自适应的问题」。
本文目标:(1) 找一个轻量、可扩展的机制替代 bin 生成又不丢语义分析能力;(2) 让 patch 丢弃比例按每张图的冗余程度自适应。
切入角度:作者的经验发现是——bin 生成只是在「捕捉同类样本间的语义关系」,那用标准 KNN 在嵌入空间记录近邻关系就够了,根本不必真的去切 bin。
核心 idea:从语义视角重构整条流水线——KNN 近邻识别替代 bin 生成、近邻感知核心集选择去局部冗余、语义偏移自适应决定每样本丢弃比例。
方法详解¶
整体框架¶
BGFDQ(Bin-Generation-Free Dataset Quantization)把传统 DQ 的「bin 生成 → 选择 → 固定 patch dropping」三步,换成「近邻识别 → 近邻感知核心集选择 → 语义偏移 patch dropping」三步。输入是原始数据集 \(\mathcal{D}\),输出是量化后的核心集 \(\mathcal{S}^*\)。第一步用 KNN 在嵌入空间为每个样本记录近邻(廉价地拿到语义结构);第二步用近邻信息按概率删除冗余近邻、保留覆盖;第三步为每个被选样本自适应挑丢弃比例。框架有两个版本:BGFDQ (w/o SPD) 末步仍用固定比例 patch dropping,BGFDQ (w/ SPD) 末步换成语义偏移自适应 dropping(完整版)。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["原始数据集 D"] --> B["近邻识别<br/>KNN 在嵌入空间记录<br/>每样本的 K 近邻"]
B --> C["近邻感知核心集选择<br/>随机选样本 + 按距离概率<br/>删除其近邻去冗余"]
C -->|w/o SPD: 固定比例 θ| E["量化核心集 S*"]
C -->|w/ SPD| D["语义偏移 patch dropping<br/>每样本自适应选丢弃比例"]
D --> E
关键设计¶
1. 近邻识别:用 KNN 替代立方复杂度的 bin 生成
bin 生成之所以贵,是因为它把「分析数据集语义结构」和「迭代构造互斥 bin」绑在一起,复杂度 \(O(CM^3)\)。作者发现 bin 生成实质上只起到「数据集分析器」的作用,于是用纯 KNN 做样本粒度的语义分析来替代:用预训练特征提取器 \(f(\cdot)\) 把每个样本嵌入 \(z_i = f(x_i)\),对同类样本算平方欧氏距离 \(d_{ij} = \|z_i - z_j\|_2^2\),取最近的 \(K\) 个作为近邻集 \(\mathcal{N}_i = \text{TopK}_{j\neq i}(-d_{ij})\)。\(K\) 不是敏感超参(近邻信息只是记录、不用于决策),实现里直接设 \(K=20\)。这一步只记录局部语义结构,把分析成本从 \(O(CM^3)\) 降量级,是整套方法能扩展到 20 万样本/类的根基。
2. 近邻感知核心集选择:删近邻去冗余,理论上覆盖更高、冗余更低
光有近邻还不够,关键是怎么用它选核心集。直觉是:语义上挨得近的样本往往信息冗余,应避免重复选。机制上从空核心集 \(\mathcal{S}=\{\}\)、全集 \(\mathcal{D}\)、目标占比 \(\rho\) 出发,每轮随机从 \(\mathcal{D}\) 选一个样本 \(x_i\) 加入 \(\mathcal{S}\),然后对它按距离排序的近邻 \(x_i^k\) 以概率 \(p_k = e^{-\rho\alpha k}\)(\(\alpha>0\))从 \(\mathcal{D}\) 中删除——越近的近邻越可能被删,越小的 \(\rho\) 删得越狠、逼后续选择转向语义上更不同的样本。作者还从覆盖 \(R(\mathcal{S})=\sup_{x\in\mathcal{D}}\min_{s\in\mathcal{S}} d(x,s)\)(越小越好)和冗余 \(\Gamma(\mathcal{S})=\min_{s\neq s'} d(s,s')\)(越大越好)两个量给出理论比较,证明近邻方案(NI+NCS)期望上覆盖更高、冗余更低:\(\mathbb{E}[R_{\text{NI+NCS}}] < \mathbb{E}[R_{\text{BG+RS}}]\) 且 \(\mathbb{E}[\Gamma_{\text{NI+NCS}}] > \mathbb{E}[\Gamma_{\text{BG+RS}}]\)。原因是删近邻显式抑制了局部重复采样,把采样概率重新分配给未覆盖区域。
3. 语义偏移 Patch Dropping (SPD):按每张图的语义容忍度自适应选丢弃比例
固定比例 \(\theta\) 不管图像内容一刀切,对多数样本都次优。SPD 用「丢 patch 后语义偏移多大」来自动定每样本的最优丢弃比例。先为每类定一个语义偏移阈值 \(\lambda_C\):取同类样本两两距离里最小的若干个(实现中取最小的 50 个非零类内距离的均值,抗离群/噪声),\(\lambda_C = \min\{d_{ij}\mid i,j\in C, i\neq j\}\)(实际用均值近似),可视为语义空间里的「邻近边界」,且能直接复用近邻识别阶段算好的类内距离、零额外开销。然后对核心集里每个样本 \(x\),用一系列候选比例 \(\theta_i\in\{10\%,...,90\%\}\) 生成丢弃变体 \(x_{\theta_i}\),算它与原图的语义偏移 \(d_{xx'}\),在不超过阈值 \(\lambda_C\) 的前提下挑丢得最多的那个:\(x_{\theta^*} = \arg\max_{\theta_i}\{d_{xx'}\mid d_{xx'} < \lambda_C\}\)。直觉是:偏移小说明丢得还不够、可以再激进;逼近阈值就停——在保语义完整的前提下尽量多丢。代价是这步要为每样本试多个比例、有额外算力,所以只在大规模(同类样本 \(\sim10^5\) 量级)时整体 FLOPs 才反超固定 dropping。
损失函数 / 训练策略¶
本方法是核心集构造流程而非端到端训练目标,无独立损失函数。特征提取器统一用 ResNet-18;近邻 \(K=20\);核心集选择删除概率衰减率 \(\alpha\) 与目标占比 \(\rho\) 控制激进程度;SPD 候选比例 \(\{10\%,...,90\%\}\)、类阈值 \(\lambda_C\) 用最小 50 个类内距离均值。整体复杂度 \(O(CM^2)\)(w/ 和 w/o SPD 均是),相比 bin 生成的 \(O(CM^3)\) 有量级优势;训练用合成图时沿用预训练 MAE 重建被丢 patch。
实验关键数据¶
主实验¶
在 CIFAR-10/100、ImageNet-1K、Fakeddit 上用 ResNet-18 同时做特征提取器与目标网络,不同核心集占比 \(\rho\) 下验证准确率(%):
| 数据集/ρ | Random | DQ | DQAS | ADQ | BGFDQ (w/o SPD) | BGFDQ (w/ SPD) |
|---|---|---|---|---|---|---|
| CIFAR-10 / 20% | 87.1 | 87.6 | 90.2 | 89.3 | 90.5 | 91.6 |
| CIFAR-100 / 20% | 60.5 | 60.4 | 61.0 | 59.1 | 62.8 | 66.0 |
| CIFAR-100 / 10% | 52.6 | 52.9 | 52.6 | 52.7 | 53.6 | 55.2 |
| ImageNet-1K / 20% | 48.7 | 49.1 | – | 49.2 | 49.4 | 49.5 |
| Fakeddit / 1% | 83.3 | OOM | OOM | OOM | 83.4 | 83.8 |
BGFDQ (w/o SPD) 平均比基线高约 1.0%,加 SPD 再涨约 1.3%;CIFAR-100 上最高 +5%。Fakeddit 上所有 bin 生成法 OOM,本文可正常运行——验证可扩展性。
消融实验¶
核心集选择策略对比(CIFAR-10,训练 ResNet-18,验证准确率 %):
| 选择策略 | 5K | 10K | 15K |
|---|---|---|---|
| RS(纯随机) | 75.7 | 87.1 | 90.2 |
| BG+RS(bin 生成 + bin 内随机) | 75.9 | 87.0 | 90.1 |
| NI+NCS(本文近邻方案) | 76.4 | 87.6 | 90.5 |
运行时分解(CIFAR-10,ρ=20%,秒):
| 方法 | bin 生成 | 近邻识别 | patch dropping | 总耗时 | 准确率 |
|---|---|---|---|---|---|
| DQ | 441 | / | 806 | 1248 | 87.6 |
| ADQ | 441 | / | 806 | 1640 | 89.3 |
| BGFDQ (w/o SPD) | / | 155 | 806 | 1052 | 90.5 |
| BGFDQ (w/ SPD) | / | 155 | 2219(SPD) | 2465 | 91.6 |
关键发现¶
- bin 生成几乎没带来收益:BG+RS 相比纯随机在 CIFAR-10/100 平均只提 0.1%,证明它「贵但无用」;近邻方案在所有规模上稳定增益——印证「bin 生成非必需」的核心论点。
- NI 省时又涨点:近邻识别(155s)远低于 bin 生成(441s),w/o SPD 总耗时还比 DQ 低、准确率反而更高(90.5 vs 87.6)。
- SPD 用更高压缩换不掉点:丢弃比例从 25% 提到平均 40%,固定 dropping 明显掉点,而 SPD 在多丢 15% patch 的同时仍维持与 PD(25%) 相当的准确率。
- 跨架构泛化:用 ResNet-18 选的核心集训练 ResNet-50 / ViT,BGFDQ 在所有目标网络上均超基线(如 CIFAR-100/ViT 上 w/ SPD 达 35.7% vs ADQ 30.9%)。
亮点与洞察¶
- 「质疑一个被默认的步骤」本身就很有价值:作者没有去改进 bin 生成,而是直接问「它是否必需」,并用理论 + 消融证明它可被廉价的 KNN 近邻替代——这种「拆掉昂贵默认组件」的思路可迁移到很多 pipeline 式方法。
- 自适应丢弃比例的判据很巧:用「丢 patch 后的语义偏移是否超过类内邻近边界 \(\lambda_C\)」来定每样本的丢弃比例,且 \(\lambda_C\) 直接复用近邻阶段算好的类内距离,零额外成本拿到自适应能力。
- 可扩展性是真·卖点:把复杂度从 \(O(CM^3)\) 降到 \(O(CM^2)\),让数据集量化第一次能跑单类 20 万样本的 Fakeddit,打开了大规模落地的口子。
局限与展望¶
- SPD 的额外算力不小(CIFAR-10 上 SPD 那一步 2219s),只有当同类样本达 \(\sim10^5\) 量级时整体 FLOPs 才反超固定 dropping;中小规模下 w/ SPD 的时间成本偏高。
- 语义偏移阈值 \(\lambda_C\) 是启发式(取最小 50 个类内距离均值),作者自己也承认没有形式化理论保证(⚠️ 以原文为准)。
- 特征提取器固定为 ResNet-18,跨架构迁移虽好但仍有因 backbone 不匹配带来的退化;不同提取器对近邻质量的影响未充分探讨。
- 改进方向:把近邻删除概率 \(p_k\) 和 SPD 候选比例做成可学习/数据驱动,而非固定的指数衰减与离散网格。
相关工作与启发¶
- vs DQ(Dataset Quantization 开山作): DQ 用子模优化做 bin 生成 + bin 内均匀采样 + 固定 patch dropping,复杂度 \(O(CM^3)\);BGFDQ 用 KNN 近邻 + 近邻感知选择 + 自适应 dropping,复杂度 \(O(CM^2)\),去掉 bin 生成后既省时又涨点。
- vs DQAS / ADQ: 二者仍沿用 bin 生成流水线,分别在选择环节加主动学习、bin 加权;BGFDQ 从根上替换 bin 生成,因此在 Fakeddit 这类超大类别上能跑而它们 OOM。
- vs 核心集选择(GradMatch 等): 传统核心集选择一次性选子集,极端压缩下覆盖不足;BGFDQ 的近邻感知删除显式优化覆盖与冗余,并叠加 patch 级量化,压缩率更高。
- vs 数据集蒸馏(DM 等): 蒸馏靠嵌套优化合成样本、开销大且泛化受限;BGFDQ 是选择+量化真实样本,免合成、跨架构迁移更稳。
评分¶
- 新颖性: ⭐⭐⭐⭐ 「bin 生成非必需」的反问 + KNN 替代 + 自适应丢弃,重构了 DQ 流水线,视角新。
- 实验充分度: ⭐⭐⭐⭐ 四数据集 + 跨架构 + 运行时分解 + 组件消融 + 复杂度分析,覆盖全面。
- 写作质量: ⭐⭐⭐⭐ 痛点—方法—理论—实验对应清晰,组件缩写表友好;部分阈值为启发式。
- 价值: ⭐⭐⭐⭐⭐ 把数据集量化的复杂度降一个量级、首次扩展到 20 万样本/类,实用性与可扩展性突出。