Coder Social home page Coder Social logo

igorsusmelj / vaal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sinhasam/vaal

0.0 1.0 0.0 3.95 MB

Variational Adversarial Active Learning (ICCV 2019)

Home Page: https://arxiv.org/abs/1904.00370

License: BSD 2-Clause "Simplified" License

Python 0.52% Jupyter Notebook 99.48%

vaal's Introduction

VAAL in PyTorch

Update: For any questions, please email me at [email protected], since I often don't get GitHub emails.

Original Pytorch implementation of "Variational Adversarial Active Learning" (ICCV 2019 Oral). Link to the paper.

Samarth Sinha*, Sayna Ebrahimi*, Trevor Darrell, Internation Conference on Computer Vision (ICCV 2019)

First two authors contributed equally

Abstract

Active learning aims to develop label-efficient algorithms by sampling the most representative queries to be labeled by an oracle. We describe a pool-based semi-supervised active learning algorithm that implicitly learns this sampling mechanism in an adversarial manner. Unlike conventional active learning algorithms, our approach is \textit{task agnostic}, i.e., it does not depend on the performance of the task for which we are trying to acquire labeled data. Our method learns a latent space using a variational autoencoder (VAE) and an adversarial network trained to discriminate between unlabeled and labeled data. The mini-max game between the VAE and the adversarial network is played such that while the VAE tries to trick the adversarial network into predicting that all data points are from the labeled pool, the adversarial network learns how to discriminate between dissimilarities in the latent space. We extensively evaluate our method on various image classification and semantic segmentation benchmark datasets and establish a new state of the art on CIFAR10/100, Caltech-256, ImageNet, Cityscapes, and BDD100K. Our results demonstrate that our adversarial approach learns an effective low dimensional latent space in large-scale settings and provides for a computationally efficient sampling method.

Citation

If using this code, parts of it, or developments from it, please cite our paper:

@article{sinha2019variational,
  title={Variational Adversarial Active Learning},
  author={Sinha, Samarth and Ebrahimi, Sayna and Darrell, Trevor},
  journal={arXiv preprint arXiv:1904.00370},
  year={2019}
}

Prerequisites:

  • Linux or macOS
  • Python 3.5/3.6
  • CPU compatible but NVIDIA GPU + CUDA CuDNN is highly recommended.

Installation

The required Python3 packages can be installed using

pip3 install -r requirements.txt

Experiments and Visualization

The code can simply be run using

python3 main.py

When using the model with different datasets or different variants, the main hyperparameters to tune are

--adversary_param --beta --num_vae_steps and --num_adv_steps

The results will be saved in results/accuracies.log.

We have provided the code and data required to replicate all plots in paper here.

License

The entire codebase is under BSD 2-Clause License.

Contact

If there are any questions or concerns feel free to send a message at [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.