https://github.com/deu30303/RUC
https://github.com/deu30303/RUC
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/deu30303/RUC
- Owner: deu30303
- Created: 2020-12-21T04:11:32.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-11-23T13:42:15.000Z (about 3 years ago)
- Last Synced: 2024-08-04T03:11:12.882Z (over 1 year ago)
- Language: Python
- Size: 948 KB
- Stars: 144
- Watchers: 4
- Forks: 15
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-self-supervised-learning - [code
README
# Improving Unsupervised Image Clustering With Robust Learning #
This repo is the PyTorch codes for "Improving Unsupervised Image Clustering With Robust Learning (RUC)"
> [**Improving Unsupervised Image Clustering With Robust Learning**](https://arxiv.org/abs/2012.11150)
> >
> Sungwon Park, Sungwon Han, Sundong Kim, Danu Kim, Sungkyu Park, Seunghoon Hong, Meeyoung Cha.
## Highlight ##
- **Accepted at CVPR 2021.**
- 🏆 __SOTA on 4 benchmarks. Check out [Papers With Code](https://paperswithcode.com/paper/learning-to-classify-images-without-labels) for [Image Clustering](https://paperswithcode.com/task/image-clustering) or [Unsup. Classification](https://paperswithcode.com/task/unsupervised-image-classification).__
1. RUC is an add-on module to enhance the performance of any off-the-shelf unsupervised learning algorithms. RUC is inspired by robust learning. It first divides clustered data points into clean and noisy set, then refine the clustering results. With RUC, state-of-the-art unsupervised clustering methods; SCAN and TSUC showed showed huge performance improvements. (STL-10 : 86.7%, CIFAR-10 : 90.3%, CIFAR-20 : 54.3%, CIFAR-100 : 36.5 %, ImageNet-50 : 78.5)
2. Prediction results of existing unsupervised learning algorithms were overconfident. RUC can make the prediction of existing algorithms softer with better calibration.
3. Robust to adversarially crafted samples. ERM-based unsupervised clustering algorithms can be prone to adversarial attack. Adding RUC to the clustering models improves robustness against adversarial noise.
## Required packages ##
- python == 3.6.10
- pytorch == 1.1.0
- scikit-learn == 0.21.2
- scipy == 1.3.0
- numpy == 1.18.5
- pillow == 7.1.2
## Overall model architecture ##
## Usage ##
```
usage: main_ruc_[dataset].py [-h] [--lr LR] [--momentum M] [--weight_decay W]
[--epochs EPOCHS] [--batch_size B] [--s_thr S_THR]
[--n_num N_NUM] [--o_model O_MODEL]
[--e_model E_MODEL] [--seed SEED]
config for RUC
optional arguments:
-h, --help show this help message and exit
--lr LR initial learning rate
--momentum M momentum
--weight_decay weight decay
--epochs EPOCHS max epoch per round. (default: 200)
--batch_size B training batch size
--s_thr S_THR confidence sampling threshold
--n_num N_NUM the number of neighbor for metric sampling
--o_model O_MODEL original model path
--e_model E_MODEL embedding model path
--seed SEED random seed
```
## Model ZOO ##
Currently, we support the pretrained model for our model. We used the pretrained SCAN and SimCLR model from SCAN github.
(o_model : SCAN , e_model : SimCLR)
### SCAN ###
| Dataset | o_model | e_model |
|-------------------|---------------|---------------|
|CIFAR-10 | [Download](https://drive.google.com/file/d/1ONJbw6Qnccgl20uN38pS3RgpqeobAWxb/view?usp=sharing) | [Download](https://drive.google.com/file/d/1uczIKDCQRZiysgGmyaro0Ukk8VIDQlu3/view?usp=sharing) |
|CIFAR-20 | [Download](https://drive.google.com/file/d/1SWXqE5Esu4j4n7QUrL6kbR39Xzb6bgJg/view?usp=sharing) | [Download](https://drive.google.com/file/d/1JzzMjqvd3zPNDh0ndWWfgJrxAEg3jTKw/view?usp=sharing) |
|STL-10 | [Download](https://drive.google.com/file/d/15lFVyOjZvGbqdZ1R150XL9-SuGgo57kp/view?usp=sharing) | [Download](https://drive.google.com/file/d/148D5ys5KA4Xm2sSBDqNmCUxiCgzf0cP6/view?usp=sharing) |
### Ours ###
| Dataset | Download link |
|-------------------|---------------|
|CIFAR-10 | [Download](https://drive.google.com/file/d/16Wcby-8etsTPPIlsQb9oluk3NN8kSmCX/view?usp=sharing) |
|CIFAR-20 | [Download](https://drive.google.com/file/d/118SIQ3YBx1y9Uoq-Wo3FyW9iYELKjcQJ/view?usp=sharing) |
|STL-10 | [Download](https://drive.google.com/file/d/1mHLkC2JrKsnMswIeT6wKO4fV97DbTHtJ/view?usp=sharing) |
## Citation
If you find this repo useful for your research, please consider citing our paper:
```
@inproceedings{park2021improving,
title={Improving Unsupervised Image Clustering With Robust Learning},
author={Park, Sungwon and Han, Sungwon and Kim, Sundong and Kim, Danu and Park, Sungkyu and Hong, Seunghoon and Cha, Meeyoung},
booktitle={CVPR},
year={2021}
}
```