EasyDUB-dataset
收藏EasyDUB 数据集概述
数据集基本信息
- 数据集名称: EasyDUB Dataset
- 主要用途: 用于数据遗忘(data-unlearning)方法的KLOM(KL-divergence of Margins)评估。
- 基础数据: 基于CIFAR-10数据集。
- 许可证: MIT License
- 相关标签: machine-unlearning, cifar10, computer-vision, robustness, benchmarks
数据集内容
预训练模型
- 数量: 200个
- 模型架构: ResNet9
- 训练数据: 完整的CIFAR-10训练集(50,000个样本)
- 检查点: 所有模型均保存于第23个训练周期(共24个周期)
参考模型(Oracle Models)
- 数量: 每个遗忘集对应200个模型
- 模型架构: ResNet9
- 训练数据: 保留集(训练集减去遗忘集),针对10个不同的遗忘集分别训练
- 检查点: 所有模型均保存于第23个训练周期
预计算数据
- Logits(原始输出): 为所有模型在训练/验证/遗忘/保留集划分上预计算的logits。
- Margins(边界值): 为所有模型在训练/验证/遗忘/保留集划分上预计算的margins。
- 数据格式: NumPy数组(
.npy文件)
遗忘集
- 数量: 10个
- 构成:
- 遗忘集1: 10个随机样本
- 遗忘集2: 100个随机样本
- 遗忘集3: 1,000个随机样本
- 遗忘集4: 在第一个主成分上投影最高的10个样本
- 遗忘集5: 在第一个主成分上投影最高的100个样本
- 遗忘集6: 在第一个主成分上投影最高的250个样本 + 投影最低的250个样本
- 遗忘集7: 在第二个主成分上投影最高的10个样本
- 遗忘集8: 在第二个主成分上投影最高的100个样本
- 遗忘集9: 在第二个主成分上投影最高的250个样本 + 投影最低的250个样本
- 遗忘集10: 在CLIP图像空间中与一个参考食火鸡图像最接近的100个样本
- 文件: 每个遗忘集对应一个
forget_set_Z.npy文件,其中包含指向CIFAR-10训练集的整数索引。
数据集结构
EasyDUB-dataset/ ├── models/ │ └── cifar10/ │ ├── pretrain/ │ │ └── resnet9/ │ │ └── id_X_epoch_23.pt │ └── oracle/ │ └── forget_Z/ │ └── resnet9/ │ └── id_X_epoch_23.pt ├── logits/ │ └── cifar10/ │ ├── pretrain/ │ │ ├── retain/ │ │ │ └── resnet9/ │ │ │ └── id_X_epoch_23.npy │ │ ├── val/ │ │ │ └── resnet9/ │ │ │ └── id_X_epoch_23.npy │ │ └── forget_Z/ │ │ └── resnet9/ │ │ └── id_X_epoch_23.npy │ └── oracle/ │ └── forget_Z/ │ ├── retain/ │ │ └── resnet9/ │ │ └── id_X_epoch_23.npy │ ├── forget/ │ │ └── resnet9/ │ │ └── id_X_epoch_23.npy │ └── val/ │ └── resnet9/ │ └── id_X_epoch_23.npy ├── margins/ │ └── cifar10/ │ └── [same structure as logits/] └── forget_sets/ └── cifar10/ └── forget_set_Z.npy
技术规格
文件命名
- 模型文件:
id_{MODEL_ID}_epoch_{EPOCH}.pt(例如id_42_epoch_23.pt) - Logits/Margins文件:
id_{MODEL_ID}_epoch_{EPOCH}.npy - 遗忘集文件:
forget_set_{SET_ID}.npy(例如forget_set_1.npy)
数据形状与类型
- Logits: 形状为
(n_samples, 10)的float32NumPy数组,代表10个CIFAR-10类别的原始模型输出。 - Margins: 形状为
(n_samples,)的float32NumPy数组,代表标量边界值。 - 遗忘集: 形状为
(n_forget_samples,)的整数索引数组,索引范围在[0, 49_999]内,指向CIFAR-10训练集。
典型数据规模
- 训练集: 50,000个样本
- 验证集: 10,000个样本
- 遗忘集: 10至1,000个样本(因集而异)
Margin定义
对于每个具有logits logits和真实标签true_label的样本,其margin计算方式如下:
python
import torch
def compute_margin(logits: torch.Tensor, true_label: int) -> torch.Tensor:
logit_other = logits.clone()
logit_other[true_label] = -torch.inf
return logits[true_label] - logit_other.logsumexp(dim=-1)
更高的margin值表示模型对正确类别的置信度相对于所有其他类别更高(通过log-sum-exp计算)。
训练过程摘要
所有预训练模型和参考模型共享相同的训练设置:
- 优化器: 带动量的SGD
- 学习率: 0.4(三角调度,在第5个周期达到峰值)
- 动量: 0.9
- 权重衰减: 5e-4
- 训练周期: 共24个,本数据集使用第23个周期的检查点
- 混合精度: 启用(FP16)
- 标签平滑: 0.0
相关资源
- 代码仓库: https://github.com/easydub/EasyDUB-code
- 论文: https://arxiv.org/abs/2602.16400
引用
如果使用EasyDUB,请引用: bibtex @misc{rinberg2026easydataunlearningbench, title={Easy Data Unlearning Bench}, author={Roy Rinberg and Pol Puigdemont and Martin Pawelczyk and Volkan Cevher}, year={2026}, eprint={2602.16400}, archivePrefix={arXiv}, primaryClass={cs.LG}, url={https://arxiv.org/abs/2602.16400}, }



