
Code für das Paper Certified Unlearning for Neural Networks, ICML 2025
Dieses Repository enthält die Implementierung des Papers "Certified Unlearning for Neural Networks" (ICML 2025).
Gradient Clipping im PaperModel Clipping im PaperOutput Perturbation im Paper# Clone the repository
git clone https://github.com/stair-lab/certified-unlearning-neural-networks-icml-2025.git
cd certified-unlearning-neural-networks-icml-2025
# alternatively use conda
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
.
├── src/
│ ├── data/
│ │ ├── base_datamodule.py # Basis-Datenladefunktionalität
│ │ ├── cifar_dataset.py # CIFAR-10/100 Datenlader
│ │ ├── mnist_dataset.py # MNIST Datenlader
│ │ └── datamodule.py # Datenmodul-Fabrik
│ ├── models/
│ │ ├── model.py # Modell-Fabrik
│ │ ├── tiny_net.py
│ │ └── two_layer_net.py
│ ├── training/
│ │ └── trainer.py # Haupttrainings-/Vergessenslogik
│ └── utils/
│ ├── dp.py
│ └── utils.py
├── experiment.py # Hauptexperiment-Ausführer
├── run_exp.py # Multi-GPU-Experimentstarter
├── feature_extractor.py # ResNet-18 Backbone-Merkmale extrahieren
Das Repository enthält vorkonfigurierte Experimente in den folgenden Verzeichnissen:
budget_curve_runs/: Analyseexperimente zum Privatsphäre-Budget – Abbildung 1convergence_curve_runs/: Konvergenzanalyseexperimente – Abbildung 2dp_sgd_runs/: DP-SGD- und Baseline-Experimente – Abbildung 3eps_sweep_runs/: Parametersweep-Experimente zur Privatsphäre (ε) – Abbildung 4 (im Anhang)Um ein einzelnes Experiment mit einer bestimmten Konfiguration auszuführen:
python experiment.py --config dp_sgd_runs/dp-sgd-cifar10-fc/1tmh6p2f_config.yaml
Um mehrere Experimente parallel über mehrere GPUs auszuführen:
python run_exp.py -n <num_gpus> -e <experiment_dir> [--offset <gpu_offset>] [-j <jobs_per_gpu>]
Parameter:
-n: Anzahl der zu verwendenden GPUs-e: Verzeichnis, das die Experimentkonfigurationen enthält--offset: GPU-Indexversatz (Standard: 0)-j: Anzahl gleichzeitiger Jobs pro GPU (Standard: 1)Für Transferlernen-Experimente
python feature_extractor.py
Dies extrahiert ResNet-18 Merkmale aus CIFAR-10/100 und speichert sie zur Verwendung mit den Datenkonfigurationen cifar10_feature und cifar100_feature.
Wenn Sie diesen Code in Ihrer Forschung verwenden, zitieren Sie bitte:
@article{koloskova2025certified,
title={Certified Unlearning for Neural Networks},
author={Koloskova, Anastasia and Allouah, Youssef and Jha, Animesh and Guerraoui, Rachid and Koyejo, Sanmi},
journal={arXiv preprint arXiv:2506.06985},
year={2025}
}