• Stars
    star
    130
  • Rank 275,891 (Top 6 %)
  • Language
    Python
  • Created over 6 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Generative Probabilistic Novelty Detection with Adversarial Autoencoders

Generative Probabilistic Novelty Detection with Adversarial Autoencoders

Stanislav Pidhorskyi, Ranya Almohsen, Donald A Adjeroh, Gianfranco Doretto

Lane Department of Computer Science and Electrical Engineering, West Virginia University
Morgantown, WV 26508
{stpidhorskyi, ralmohse, daadjeroh, gidoretto} @mix.wvu.edu

The e-preprint of the article on arxiv.

NeurIPS Proceedings.

@inproceedings{pidhorskyi2018generative,
  title={Generative probabilistic novelty detection with adversarial autoencoders},
  author={Pidhorskyi, Stanislav and Almohsen, Ranya and Doretto, Gianfranco},
  booktitle={Advances in neural information processing systems},
  pages={6822--6833},
  year={2018}
}

Content

  • partition_mnist.py - code for preparing MNIST dataset.
  • train_AAE.py - code for training the autoencoder.
  • novelty_detector.py - code for running novelty detector
  • net.py - contains definitions of network architectures.

How to run

You will need to run partition_mnist.py first.

Then run schedule.py. It will run as many concurent experiments as many GPUs are available. Reusults will be written to results.csv file


Alternatively, you can call directly functions from train_AAE.py and novelty_detector.py

Train autoenctoder with train_AAE.py, you need to call train function:

train_AAE.train(
  folding_id,
  inliner_classes,
  ic
)

Args:

  • folding_id: Id of the fold. For MNIST, 5 folds are generated, so folding_id must be in range [0..5]
  • inliner_classes: List of classes considered inliers.
  • ic: inlier class set index (used to save model with unique filename).

After autoencoder was trained, from novelty_detector.py, you need to call main function:

novelty_detector.main(
  folding_id,
  inliner_classes,
  total_classes,
  mul,
  folds=5
)
  • folding_id: Id of the fold. For MNIST, 5 folds are generated, so folding_id must be in range [0..5]
  • inliner_classes: List of classes considered inliers.
  • ic: inlier class set index (used to save model with unique filename).
  • total_classes: Total count of classes (deprecated, moved to config).
  • mul: multiplier for power correction. Default value 0.2.
  • folds: Number of folds (deprecated, moved to config).

Generated/Reconstructed images

MNIST Reconstruction

MNIST Reconstruction. First raw - real image, second - reconstructed.



MNIST Reconstruction

MNIST Generation.



COIL100 Reconstruction

COIL100 Reconstruction, single category. First raw - real image, second - reconstructed. Only 57 images were used for training.



COIL100 Generation

COIL100 Generation. First raw - real image, second - reconstructed. Only 57 images were used for training.



COIL100 Reconstruction

COIL100 Reconstruction, 7 categories. First raw - real image, second - reconstructed. Only about 60 images per category were used for training



COIL100 Generation

COIL100 Generation. First raw - real image, second - reconstructed. Only about 60 images per category were used for training.



PDF

PDF of the latent space for MNIST. Size of the latent space - 32

More Repositories

1

ALAE

[CVPR2020] Adversarial Latent Autoencoders
Python
3,511
star
2

bimpy

imgui for python
C++
202
star
3

DareBlopy

Data Reading Blocks for Python
Jupyter Notebook
102
star
4

VAE

Example of vanilla VAE for face image generation at resolution 128x128 using pytorch.
Python
67
star
5

KeplerOrbits

C++
57
star
6

ShaderBoiler

Aimed to eliminate preprocessor hell in shaders and kernels.
C++
40
star
7

StyleGAN_Blobless

Original stylegan without blobs (without retraining).
Python
38
star
8

StyleGANCpp

Unofficial implementation of StyleGAN's generator
C++
33
star
9

MinimalFem

C++
30
star
10

EnvMapTooL

C
30
star
11

tensor4

tensor4 - pytorch to C++ convertor using lightweight templated tensor library
C++
28
star
12

SimpleText

One header library for rendering text via OpenGL API
C++
20
star
13

StyleGan

Unofficial Pytorch implementation of Style GAN paper
Python
17
star
14

dlutils

Python
6
star
15

ProceduralSky_bgfx

C++
5
star
16

ProceduralSky

C++
5
star
17

fsal

File System Abstraction Layer
C++
5
star
18

TinyFEM

C++
4
star
19

hashranking

Fast procedures for hamming distance computation, ranking, mAP computation. Fore deep-learning research in hashing and retrieval.
Python
4
star
20

GetUUID

The GetUUID is a simple tool written in python that prints UUID and platform information for given iOS bundle or dSYM.
Python
4
star
21

DeepLearningServerSetup

My notes on setting up a server for Deep-Learning
2
star
22

Emul86

C++
2
star
23

CPP-prototyping-template

C++ prototyping template with imgui and other libs
C++
2
star
24

kmeans

Simple, one header drop in templated library from kmeans
C++
2
star
25

BroadPhase

The BroadPhase is a simple example of 2d physics engine.
C++
2
star
26

bfio

One-header library for defining writing and reading procedures of C/C++ objects to/from specific binary formats.
C++
1
star
27

PicoRender

C++
1
star
28

CUDA_tutorial1

Simple example of usage CUDA with CMake
Cuda
1
star
29

SWCParser

Reader/Writer for SWC files
C++
1
star
30

nonius

Nonius benchmark-framework fork
C++
1
star