ICLR 2024 | 根据压缩比率控制生成样本难度,NUS等提出首个无损数据集蒸馏方法
数据集蒸馏旨在以生成的方式将一个大的数据集压缩成一个小的数据集。得益于生成数据的高信息密度,在压缩率较高时,数据集蒸馏的效果远超数据集剪枝等其他数据压缩方法。然而,随着压缩率的逐渐降低,现有数据集蒸馏方法的效果逐渐变差,甚至弱于从原数据集中随机选取等量数据。这导致现有数据集蒸馏方法局限于高压缩率场景,无法实现对原数据集的无损压缩。
在本文中,作者分析了生成数据的难易以及其对压缩效果的影响,发现应该根据压缩比率控制生成数据的难易。通过应用这一策略,作者提出了第一个可以在低压缩率保持有效的数据集蒸馏方法,并首次实现了无损数据集蒸馏。
论文地址:
代码地址:
数据蒸馏可以看作是一个从目标数据集提取特征并将之添加到生成数据上的过程。目前,主流的数据集蒸馏方法大多通过匹配模型在目标数据集和生成数据集上的某种指标来完成特征的提取与压缩。
其中,基于匹配模型训练轨迹 [1] (Matching Training Trajectory) 的方法在多个基准下达到了最优。由于该方法通过匹配模型在生成数据集和目标数据集上的训练轨迹(匹配模型参数)来进行蒸馏,因此其效果受模型在目标数据集上的训练轨迹影响。
根据文献 [2] 可知,对于分类任务而言,模型倾向于在训练前期学习目标物体的简单特征而在后期学习难特征。因此我们推测匹配模型的前期轨迹就会倾向于在生成数据上添加更多的简单特征而匹配后期轨迹则会倾向于添加难特征。意识到这一点,我们开始探索匹配不同阶段路径对于数据集蒸馏的影响。
方法
同时,为了使蒸馏数据集所含的信息更加丰富,我们将蒸馏数据的硬标签 (one-hot label) 替换为软标签并在蒸馏过程中不断优化它。然而这种做法面临着一些挑战,例如软标签的初始化可能会包含错误信息,以及优化软标签会让蒸馏变得不稳定。为了解决这些问题,我们提出了以下策略:
2. 在蒸馏的早期阶段只生成简单特征(匹配前期轨迹),以此来提高蒸馏稳定性。
我们在 CIFAR10,CIFAR100 和 TinyImageNet 数据集下和多个有代表性的数据集蒸馏方法进行了对比,并进一步探索了数据集蒸馏在高 IPC 情境下的表现。主要的实验结果如下,更多的结果请参考我们的论文。
▲ 和多个蒸馏方法在不同数据集和不同IPC (image per class) 设定下的比较
▲ 在高IPC情境下数据集蒸馏和数据集剪枝的表现比较
此外,我们可以观察到添加简单特征会让图片损失关于目标物体的细节信息,而添加难特征(匹配后期轨迹)则会让目标物体具有更丰富的纹理细节。因此在压缩率较低时添加难特征的表现更好,因为此时蒸馏数据集本身就含有足够多的数据让模型学会基本的类别特征,添加更多的细节有利于模型识别离群样本。下图是蒸馏图片的可视化,更多分析请见论文。
▲ 不同IPC设定下蒸馏所得样本
▲ 匹配前期轨迹过程中图片的变化
▲ 匹配后期轨迹过程中图片的变化
参考文献
更多阅读
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
微信扫码关注该文公众号作者