KNOWN UNDERFLOW ERROR FROM GAUSSIAN MIXTURE MODEL
This is a network for unsupervised anomaly detection inspired by the neyman pearson lemma.
This implements the network found here. The implementation is modular, setup to process batches, and adapatable to different encoding/decoding networks. The final network exists in gumiho_network.py
There are admittedly no comments in this project, but it survided 5 re-writes in persuit of clear implementation. I suggest readers to ramp up code by complexity of network. A basic understanding of Variational Auto Encoders is suggested to read and understand this code. Additionally, the research paper this work is based on is a good resource for understanding the final product.
It is easiest to ramp onto this technology by following these files by complexity as listed below
ae.py
is an autoencoder and data loading functionsvae.py
is supporting abstractions to variational autoencodergumiho.py
is a VAE network with support for multiple tailsgmm.py
is the gaussian mixture modelgumiho_descriminator.py
contains a descriminating generator and the complete network
All greek letters in the paper are used directly. I use the terms False Atypical Rate and True Atypical Rate instead of FPR
and TPR
I also use the words typical
and atypical
instead of normal
and anomaly
. This is to avoid main collision with gaussian.
The Encoder
and Decoder
networks are described in ae.py
. They are super simple neural networks.
pip install virtualenv
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
deactivate
any of the given python files can be run to test that individual component
source venv/bin/activate
python gumiho_descriminator.py