
# 신경망을 위한 인증된 언러닝 논문 코드, ICML 2025
이 저장소는 ICML 2025 논문 "Certified Unlearning for Neural Networks"의 구현을 포함하고 있습니다.
Gradient ClippingModel ClippingOutput Perturbation# 저장소 클론
git clone https://github.com/stair-lab/certified-unlearning-neural-networks-icml-2025.git
cd certified-unlearning-neural-networks-icml-2025
# 또는 conda 사용
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
.
├── src/
│ ├── data/
│ │ ├── base_datamodule.py # 기본 데이터 로딩 기능
│ │ ├── cifar_dataset.py # CIFAR-10/100 데이터 로더
│ │ ├── mnist_dataset.py # MNIST 데이터 로더
│ │ └── datamodule.py # 데이터 모듈 팩토리
│ ├── models/
│ │ ├── model.py # 모델 팩토리
│ │ ├── tiny_net.py
│ │ └── two_layer_net.py
│ ├── training/
│ │ └── trainer.py # 주요 학습/언러닝 로직
│ └── utils/
│ ├── dp.py
│ └── utils.py
├── experiment.py # 주요 실험 실행기
├── run_exp.py # 다중 GPU 실험 실행기
├── feature_extractor.py # ResNet-18 백본 특징 추출
저장소에는 다음 디렉토리에 사전 구성된 실험이 포함되어 있습니다:
budget_curve_runs/: 프라이버시 예산 분석 실험 - 그림 1convergence_curve_runs/: 수렴 분석 실험 - 그림 2dp_sgd_runs/: DP-SGD 및 베이스라인 실험 - 그림 3eps_sweep_runs/: 프라이버시 매개변수(ε) 스윕 실험 - 그림 4 (부록)특정 구성으로 단일 실험을 실행하려면:
python experiment.py --config dp_sgd_runs/dp-sgd-cifar10-fc/1tmh6p2f_config.yaml
GPU에서 여러 실험을 병렬로 실행하려면:
python run_exp.py -n <gpu_개수> -e <실험_디렉토리> [--offset <gpu_오프셋>] [-j <gpu_당_작업_수>]
매개변수:
-n: 사용할 GPU 개수-e: 실험 설정 파일이 포함된 디렉토리--offset: GPU 인덱스 오프셋 (기본값: 0)-j: GPU당 동시 작업 수 (기본값: 1)전이 학습 실험용:
python feature_extractor.py
ResNet-18 특징을 CIFAR-10/100에서 추출하고 cifar10_feature 및 cifar100_feature 데이터셋 구성에서 사용할 수 있도록 저장합니다.
이 코드를 연구에서 사용하는 경우 다음을 인용해 주세요:
@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}
}