# Model Card for Yurim0507/resnet18-fashionmnist-unlearning This repository contains ResNet-18 models retrained on the FashionMNIST dataset with specific classes excluded during training. Each model is trained to study the impact of excluding a class on model performance and generalization on the remaining classes. ## Evaluation - **Testing Data**: FashionMNIST test set (10,000 images, 1,000 per class) - **Metrics**: Top-1 accuracy - For the original model: accuracy over all 10 classes. - For excluded-class models: accuracy computed on the 9 retained classes’ test samples (9,000 images). ### Results | Model File | Excluded Class | FashionMNIST Accuracy | |------------------------------------------|------------------|-----------------------| | `resnet18_fashionmnist_original.pth` | None | 95.39% | | `resnet18_fashionmnist_forget0.pth` | T-shirt/top | 96.54% | | `resnet18_fashionmnist_forget1.pth` | Trouser | 95.07% | | `resnet18_fashionmnist_forget2.pth` | Pullover | 95.99% | | `resnet18_fashionmnist_forget3.pth` | Dress | 95.69% | | `resnet18_fashionmnist_forget4.pth` | Coat | 95.92% | | `resnet18_fashionmnist_forget5.pth` | Sandal | 94.88% | | `resnet18_fashionmnist_forget6.pth` | Shirt | 97.76% | | `resnet18_fashionmnist_forget7.pth` | Sneaker | 95.37% | | `resnet18_fashionmnist_forget8.pth` | Bag | 94.76% | | `resnet18_fashionmnist_forget9.pth` | Ankle boot | 95.33% | ## Training Details ### Training Procedure - **Base Model**: ResNet-18 - **Dataset**: FashionMNIST (28×28 grayscale) - **Excluded Class**: varies per model (one of: T-shirt/top, Trouser, Pullover, Dress, Coat, Sandal, Shirt, Sneaker, Bag, Ankle boot) - **Loss Function**: CrossEntropyLoss - **Optimizer**: SGD - Learning rate: 0.1 - Momentum: 0.9 - Weight decay: 5e-4 - Nesterov: True - **Scheduler**: CosineAnnealingLR (T_max=200) - **Epochs**: 200 - **Batch Size**: 128 - **Augmentation**: RandomCrop(28, padding=4), RandomHorizontalFlip - **Gradient Clipping**: Norm 0.5 - **Input Processing**: - `ToTensor()` and Normalize with FashionMNIST mean/std (e.g., mean=0.286, std=0.353). - If preferring 3-channel input, replicate grayscale to 3 channels and use ImageNet normalization (less common). - **Hardware**: Single GPU (NVIDIA GeForce RTX 3090) ### Data Preprocessing - **Base Transform** (train & test): - `transforms.ToTensor()` - `transforms.Normalize(mean=(0.286,), std=(0.353,))` - **Training Augmentation**: - `transforms.RandomCrop(28, padding=4)` - `transforms.RandomHorizontalFlip(p=0.5)` - **Excluded-Class Handling**: - Remove all training samples of the excluded class from the training split. - Evaluate retained-class performance on the remaining 9 classes’ test samples. - (Optional) Evaluate excluded-class accuracy separately to confirm near-zero performance. ## Related Work This model is part of the research conducted using the [Machine Unlearning Comparator](https://github.com/gnueaj/Machine-Unlearning-Comparator). The tool was developed to compare various machine unlearning methods and their effects on models. ## Uses ## Direct Use These models can be directly used for evaluating the effect of excluding specific classes from the CIFAR-10 dataset during training. ## Out-of-Scope Use The models are not suitable for tasks requiring general-purpose image classification beyond the CIFAR-10 dataset. ### Model Definition Example ```python import torch import torch.nn as nn from torchvision.models import resnet18 def ResNet18_FashionMNIST(num_classes=10, in_channels=1): model = resnet18(weights=None) # Modify first conv for grayscale input: model.conv1 = nn.Conv2d(in_channels, 64, kernel_size=3, stride=1, padding=1, bias=False) model.maxpool = nn.Identity() model.fc = nn.Linear(model.fc.in_features, num_classes) return model