All Projects → Raymond-sci → And

Raymond-sci / And

Licence: mit
Official Pytorch Implementation for ICML'19 paper: Unsupervised Deep Learning by Neighbourhood Discovery

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to And

Ml Lib
An extensive machine learning library, made from scratch (Python).
Stars: ✭ 102 (-23.31%)
Mutual labels:  unsupervised-learning
Bcpd
Bayesian Coherent Point Drift (BCPD/BCPD++); Source Code Available
Stars: ✭ 116 (-12.78%)
Mutual labels:  unsupervised-learning
Tybalt
Training and evaluating a variational autoencoder for pan-cancer gene expression data
Stars: ✭ 126 (-5.26%)
Mutual labels:  unsupervised-learning
Self Supervised Speech Recognition
speech to text with self-supervised learning based on wav2vec 2.0 framework
Stars: ✭ 106 (-20.3%)
Mutual labels:  unsupervised-learning
Moco
Unofficial implementation with pytorch DistributedDataParallel for "MoCo: Momentum Contrast for Unsupervised Visual Representation Learning"
Stars: ✭ 112 (-15.79%)
Mutual labels:  unsupervised-learning
Sfmlearner
An unsupervised learning framework for depth and ego-motion estimation from monocular videos
Stars: ✭ 1,661 (+1148.87%)
Mutual labels:  unsupervised-learning
Vizuka
Explore high-dimensional datasets and how your algo handles specific regions.
Stars: ✭ 100 (-24.81%)
Mutual labels:  unsupervised-learning
E3d lstm
e3d-lstm; Eidetic 3D LSTM A Model for Video Prediction and Beyond
Stars: ✭ 129 (-3.01%)
Mutual labels:  unsupervised-learning
Bio corex
A flexible version of CorEx developed for bio-data challenges that handles missing data, continuous/discrete variables, multi-CPU, overlapping structure, and includes visualizations
Stars: ✭ 112 (-15.79%)
Mutual labels:  unsupervised-learning
Gon
Gradient Origin Networks - a new type of generative model that is able to quickly learn a latent representation without an encoder
Stars: ✭ 126 (-5.26%)
Mutual labels:  unsupervised-learning
Diff2vec
Reference implementation of Diffusion2Vec (Complenet 2018) built on Gensim and NetworkX.
Stars: ✭ 108 (-18.8%)
Mutual labels:  unsupervised-learning
Paysage
Unsupervised learning and generative models in python/pytorch.
Stars: ✭ 109 (-18.05%)
Mutual labels:  unsupervised-learning
Cleanlab
The standard package for machine learning with noisy labels, finding mislabeled data, and uncertainty quantification. Works with most datasets and models.
Stars: ✭ 2,526 (+1799.25%)
Mutual labels:  unsupervised-learning
Back2future.pytorch
Unsupervised Learning of Multi-Frame Optical Flow with Occlusions
Stars: ✭ 104 (-21.8%)
Mutual labels:  unsupervised-learning
Unsupervised Data Augmentation
Unofficial PyTorch Implementation of Unsupervised Data Augmentation.
Stars: ✭ 127 (-4.51%)
Mutual labels:  unsupervised-learning
Ddflow
DDFlow: Learning Optical Flow with Unlabeled Data Distillation
Stars: ✭ 101 (-24.06%)
Mutual labels:  unsupervised-learning
Calc
Convolutional Autoencoder for Loop Closure
Stars: ✭ 119 (-10.53%)
Mutual labels:  unsupervised-learning
Awesome Community Detection
A curated list of community detection research papers with implementations.
Stars: ✭ 1,874 (+1309.02%)
Mutual labels:  unsupervised-learning
Deepco3
[CVPR19] DeepCO3: Deep Instance Co-segmentation by Co-peak Search and Co-saliency (Oral paper)
Stars: ✭ 127 (-4.51%)
Mutual labels:  unsupervised-learning
3dpose gan
The authors' implementation of Unsupervised Adversarial Learning of 3D Human Pose from 2D Joint Locations
Stars: ✭ 124 (-6.77%)
Mutual labels:  unsupervised-learning

AND: Anchor Neighbourhood Discovery

Accepted by 36th International Conference on Machine Learning (ICML 2019).

Pytorch implementation of Unsupervised Deep Learning by Neighbourhood Discovery.

Highlight

  • We propose the idea of exploiting local neighbourhoods for unsupervised deep learning. This strategy preserves the capability of clustering for class boundary inference whilst minimising the negative impact of class inconsistency typically encountered in clusters.
  • We formulate an Anchor Neighbourhood Discovery (AND) approach to progressive unsupervised deep learning. The AND model not only generalises the idea of sample specificity learning, but also additionally considers the originally missing sample-to-sample correlation during model learning by a novel neighbourhood supervision design.
  • We further introduce a curriculum learning algorithm to gradually perform neighbourhood discovery for maximising the class consistency of neighbourhoods therefore enhancing the unsupervised learning capability.

Main results

The proposed AND model was evaluated on four object image classification datasets including CIFAR 10/100, SVHN and ImageNet12. Results are shown at the following tables:

Reproduction

Requirements

Python 2.7 and Pytorch 1.0 are required. Please refer to /path/to/AND/requirements.yaml for other necessary modules. Conda environment we used for the experiments can also be rebuilt according to it.

Usages

  1. Clone this repo: git clone https://github.com/Raymond-sci/AND.git
  2. Download datasets and store them in /path/to/AND/data. (Soft link is recommended to avoid redundant copies of datasets)
  3. To reproduce our reported result of ResNet18 on CIFAR10, please use the following command:python main.py --cfgs configs/base.yaml configs/cifar10.yaml
  4. Running on GPUs: code will be run on CPU by default, use this flag to specify the gpu devices which you want to use
  5. To evaluate trained models, use --resume to set the path of the generated checkpoint file and use --test-only flag to exit the program after evaluation

Every time the main.py is run, a new session will be started with the name of current timestamp and all the related files will be stored in folder sessions/timestamp/ including checkpoints, logs, etc.

Pre-trained model

To play with the pre-trained model, please go to ResNet18 / AlexNet. A few things need to be noticed:

  • The model is saved in pytorch format
  • It expects RGB images that their pixel values are normalised with the following mean RGB values mean=[0.485, 0.456, 0.406] and std RGB values std=[0.229, 0.224, 0.225]. Prior to normalisation the range of the image values must be [0.0, 1.0].

License

This project is licensed under the MIT License. You may find out more here.

Reference

If you use this code, please cite the following paper:

Jiabo Huang, Qi Dong, Shaogang Gong and Xiatian Zhu. "Unsupervised Deep Learning by Neighbourhood Discovery." Proc. ICML (2019).

@InProceedings{huang2018and,
  title={Unsupervised Deep Learning by Neighbourhood Discovery},
  author={Jiabo Huang, Qi Dong, Shaogang Gong and Xiatian Zhu},
  booktitle={Proceedings of the International Conference on machine learning (ICML)},
  year={2019},
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].