深度学习智能数据筛选算法:多样性与代表性的完美平衡
1. K-means vs Herding
K-means可以提供数据筛选的「多样性」
Herding可以提供数据筛选的「代表性」
这两个算法经常被一起提起,但它们优化的目标完全不同,输出的东西也不同,但是由于二者针对问题不一样,所以可以互补使用。
在长尾数据和异常数据集上:
k-means可以适配长尾数据,离群数据可以成为类的簇,小簇(尾部形态)能保住。
herding可以适配异常数据,它会将离群的异常数据,清洗掉。
2. 各自原理深入:它们在优化什么
两者本质都是在解一个优化问题,只是目标和解法完全不同
1)K-means:最小化簇内方差
目标函数:目标函数(SSE / inertia):
让每个点到自己簇心的距离平方和最小——"靠近的点归一组"的数学化。
怎么解(EM 思想,交替优化):
E 步(分配):固定簇心 → 每点归到最近簇(给定中心下的最优分配)
M 步(更新):固定分配 → 簇心取簇内均值(给定分配下的最优中心)
为什么收敛:每步目标函数单调不增,而分配方案有限 → 必然收敛(到某个局部最优)。
2)Herding:矩匹配,逼近真实均值
目标函数(矩匹配 moment matching):
让已选样本的经验均值尽量等于全类真实均值 μ。
为什么有效:选中样本在分布的"一阶矩(均值)"上代表全类 → 它们是统计上的代表点,蒸馏它们最能复刻旧决策边界。
怎么解(贪心,不迭代):
- 每步挑使"当前已选均值"最接近 μ 的那个点
- 一次贪心完成,O(N·k),确定性、可复现
3.算法步骤
K-means 四步(循环)
- 1. 初始化:随机选 k 个簇心
- 2. 分配:每个点归到最近簇心
- 3. 更新:簇心 = 簇内均值
- 4. 判断:簇心还在变? → 回 ②
②③ 交替迭代到收敛。
Herding 三步(贪心)
- 算类心:μ = 全类特征均值
- 贪心挑:选让「已选均值」最接近 μ 的 x
- 重复:做 k 次,得到 k 个样本
一次贪心,不迭代,确定性。
4.深度学习中使用
具体步骤
- 特征向量提取:使用模型backbone(如CNN、ViT等)对输入图像进行前向传播,获取最后一层特征图或全局平均池化后的特征向量。每张图像输出一个C维向量,形成原始特征空间。
- L2 归一化:距离类算法对尺度敏感,向量先做 L2 归一化,确保所有向量位于单位超球面上。
- 选择算法:在 [N×C] 特征矩阵上跑 K-means(多样性)/ Herding(代表性)/ 黄金组合。
- K-means聚类:通过最小化类内距离获取多样性样本,适合数据分布探索
- Herding算法:迭代选择最接近当前质心的样本,保持类别代表性
- 混合策略:先K-means聚类再各类别内Herding,平衡多样性与代表性
4.样本回溯机制:将算法输出的样本索引映射回原始数据集,提取对应真实原始数据模态
5.应用场景
应用场景部署 处理后的样本集可用于:
增量学习中的回放缓冲区构建
Coreset方法中的压缩训练集生成
主动学习中的候选样本池优化
模型解释性分析中的典型样本展示
